@Denis1111

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

Как сделать так чтобы в массиве не было одинаковых элементов? К примеру, есть массив ['name', 'surname', ''name];
Как сделать так, чтобы цикл не возвращал два одинаковых элемента, а вернул только один из них. Например ['name', 'surname'] вот так.
  • Вопрос задан
  • 299 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Делаем нормально: [...new Set(arr)].

И ненормально:

Object.values(arr.reduce((acc, n) => (acc[n] = n, acc), {}))

// или

Array.from(new Map(arr.map(n => [ n, n ])).values())

// или

arr.filter(function(n) {
  return !(this[n] = this.hasOwnProperty(n));
}, {})

// или

arr.filter(((picked, n) => !picked.set(n, picked.has(n)).get(n)).bind(null, new Map))

// или

arr.filter((n, i, a) => i === a.indexOf(n))

// или

arr.reduce((acc, n) => (acc.includes(n) || acc.push(n), acc), [])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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