Короткая статья с небольшой функцией, которая поможет чуть-чуть упростить нелегкую жизнь js-разработчика.
Не понятно, по каким причинам, но в JS нет «родной» функции, которая бы удаляла повторяющиеся элементы массива. Далее в статье вы найдете решение этой проблемы…
Функция, которая удаляет повторяющиеся элементы массива
По работе ни один раз приходилось сталкиваться с проблемой удаления дублей из массива, но руки ни разу не доходили до того, чтобы оформить решение в функцию. Но недавно коллега по работе, встретившись с этой проблемой, все сделал «красиво». И было бы глупо, не опубликовать функцию на блоге.
Ниже приведен код функции, которая удаляет повторяющиеся элементы массива:
/** * Возвращает новый массив с уникальными элементами из исходного массива * @return array - массив с уникальными элементами */ Array.prototype.unique = function() { var a = this.concat(); for(var i=0; i<a.length; ++i) { for(var j=i+1; j<a.length; ++j) { if(a[i] === a[j]) a.splice(j--, 1); } } return a; };
И пример использования:
// исходный массив с неуникальными элементами var test_array = [1, 2, 2, true, false, 3, "false", false, "kek"]; // массив с уникальными элементами var unique_array; unique = test_array.unique(); // посмотрим на результат в консоле console.log("Old array: ", test_array); console.log("New array: ", unique_array);
Послесловие
Респект Родину Алексею за функцию, пиши еще :)