@Nivaech

Как объединить несколько массивов в один и исключить повторы?

Есть один большой массив с коллекцией массивов.
someArr = [ ["A", "B", "C"], ["A", "B", "C", "D"], ["A", "B", "D"], ["C", "D"], ["A", "B", "C"], ["A", "B"], ["A", "D"] ,["B"]]

Можно ли каким-то образом объединить все это в один массив, при этом исключая повторы?

Чтобы было вот так:
filteredArr = ["A", "B", "C", "D"]
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Вот окей, используем Set:

Array.from(new Set(arr.flat()))

// или, без создания промежуточного массива

[...arr.reduce((acc, n) => (n.forEach(m => acc.add(m)), acc), new Set)]

Вот не окей:

Object.keys([].concat(...arr).reduce((acc, n) => (acc[n] = 1, acc), {}))

// или

Array.prototype.concat.apply([], arr).filter((n, i, a) => i === a.indexOf(n))

// или

`${arr}`.split(',').reduce((acc, n) => (acc.includes(n) || acc.push(n), acc), [])

// или

String(arr).match(/\w/g).sort().filter((n, i, a) => n !== a[i - 1])

// или

arr.toString().match(/(\w)(?!.*\1)/g) || []
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
24 нояб. 2024, в 03:11
500 руб./за проект
24 нояб. 2024, в 01:35
5000 руб./за проект
24 нояб. 2024, в 01:24
500 руб./за проект