November 10, 2021
Фильтруем массив по уникальным значениям | JS tasks
Задачу можно решить с помощью разных версий JavaScript, а решения можно применять в ежедневной работе!
Задача
Напишите функцию unique(arr)
которая возвращает массив, содержащий только уникальные элементы arr
Решение 1
const fruits = [🍋,🥝,🍋,🥝,🍊] const uniqueArray = (arr) => arr.filter( (value, index, filteredArr) => filteredArr.indexOf(value) === index) ) console.log(uniqueArray(fruits)) // [🍋,🥝,🍊]
- Перебираем массив встроенным методом
filter
- Если в
filter
приходитtrue
возвращаем текущееvalue
- Пишем условие при котором проверяем существование элемента среди уже добавленных. Если
value
уже существует возвращаемfalse
Таким образом мы перебираем массив, проверяя попадается ли значение среди добавленных, тем самым не позволяя повторным значениями попасть в новый массив
Решение 2
const fruits = [🍋,🥝,🍋,🥝,🍊] const uniqueArray = (arr) => [...new Set(arr)] console.log(uniqueArray(fruits)) // [🍋,🥝,🍊]
- Используем конструктор создания коллекции
new Set
- Помещаем в него массив не уникальных значений
- Значения уникальной коллекции возвращаем через
spread
в новый массив
Так как new Set
может содержать только уникальные значения, внутренний геттер фильтрует все повторяющиеся значения за нас
Если вы обнаружили ошибку в тексте статьи, пожалуйста, напишите об этом в комментариях. Спасибо 🙂
November 10, 2021, 18:46
0 views
0 reactions
0 replies
0 reposts