@asmodeus13th

Как очистить массив от повторяющихся элементов?

Суть вопроса. Написать функцию, которая принимает массив и возвращает массив с элементами, которые не повторялись. Массив может состоять из чисел, строк и логических типов. Скорость работы функции должна быть не более О(n).
Результат. Передаю в функцию [2, 5, 8, 2, true, 5, 2] и получаю [8, true].
  • Вопрос задан
  • 430 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Собрать новый массив:

const newArr = Array
  .from(arr.reduce((acc, n) => acc.set(n, (acc.get(n) ?? 0) + 1), new Map))
  .filter(n => n[1] === 1)
  .map(n => n[0]);

Обновить существующий:

arr.splice(0, arr.length, ...Array
  .from(arr.reduce((acc, n) => acc.set(n, acc.has(n)), new Map))
  .reduce((acc, n) => (n[1] || acc.push(n[0]), acc), [])
);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы