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