Короткая статья с небольшой функцией, которая поможет чуть-чуть упростить нелегкую жизнь 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);
Послесловие
Респект Родину Алексею за функцию, пиши еще :)
