02 сентября 2014

Получить массив с уникальными значениями

Имеется массив с повторяющимися значениями:
var arr = ['banana', 'apple', 'orange', 'banana', 'tomato', 'apple']; 

Требуется написать функцию, принимающую на вход этот массив и возвращающую массив с уникальными значениями.

Решение 1:
var arr = ['banana', 'apple', 'orange', 'banana', 'tomato', 'apple'];

function inArray (elem, arr) {
  var pattern = new RegExp(elem);
  return pattern.test(arr.toString());
}

function getUniqueArray (arr) {
  var len = arr.length, i, newArray = [];
  for (i = 0; i < len; i++) {
    if (!inArray(arr[i], newArray)) {
      newArray.push(arr[i]);
    }
  }
  return newArray;
}

getUniqueArray(arr) //["banana", "apple", "orange", "tomato"]

В этом решении мы последовательно перебираем элементы массива. Если очередной элемент не найден в создаваемом уникальном массиве, то мы его туда добавляем.

Комментариев нет:

Отправить комментарий