Проверяет умение реализовать функцию удаления дубликатов из массива на JavaScript.
Удаление дубликатов из массива — распространенная задача, которая проверяет понимание работы с коллекциями и методами массивов в JavaScript. Существует несколько подходов, каждый из которых имеет свои особенности по производительности и читаемости.
Самый простой и современный способ — использовать объект Set, который хранит только уникальные значения. Преобразуйте массив в Set, а затем обратно в массив:
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]Этот метод работает для примитивных типов (числа, строки, булевы значения) и очень производителен.
Для более старых версий JavaScript или для понимания логики можно использовать метод filter с проверкой индекса первого вхождения:
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = arr.filter((item, index) => arr.indexOf(item) === index);
console.log(uniqueArr); // [1, 2, 3, 4, 5]Этот подход менее производителен для больших массивов, так как indexOf проходит по массиву каждый раз.
Метод reduce позволяет собрать уникальные значения в аккумулятор:
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = arr.reduce((acc, item) => {
if (!acc.includes(item)) acc.push(item);
return acc;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]Этот метод также менее эффективен для больших массивов из-за использования includes.
Для большинства случаев рекомендуется использовать Set из-за его простоты и высокой производительности. Если нужно поддерживать старые браузеры или работать с объектами, можно использовать filter или reduce с дополнительной логикой сравнения.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию