Задать вопрос
@Denis1111

Как сделать так чтобы в массиве не было одинаковых элементов?

Как сделать так чтобы в массиве не было одинаковых элементов? К примеру, есть массив ['name', 'surname', 'name'];
Как сделать так, чтобы цикл не возвращал два одинаковых элемента, а вернул только один из них. Например ['name', 'surname'] вот так.
  • Вопрос задан
  • 339 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Вот так будет круто:

// собираем новый массив
const newArr = [...new Set(arr)];

// обновляем существующий
arr.length = arr
  .reduce((acc, n) => acc.add(arr[acc.size] = n), new Set)
  .size;

А так - не очень:

// собираем новый массив
const newArr = arr.filter((n, i, a) => i === a.indexOf(n));

// обновляем существующий
arr.reduceRight(
  (_, n, i, a) => i === a.indexOf(n) || a.splice(i, 1),
  null
);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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