@hifProg

Как отфильтровать многомерный массив?

Есть массив массивов, который нужно отфильтровать по первым значениям [0] у массивов и оставить повторяющие у первых значений
const arr = [
['77', 'привет', 'текст']
['257', 'привет5', 'текст2']
['77', 'привет4', 'текст2']
['87', 'привет1', 'текст1']
['77', 'привет2', 'текст2']
]


На выходе должно быть
const arr = [
['77', 'привет', 'текст']
['77', 'привет4', 'текст2']
['77', 'привет2', 'текст2']
]
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
arr.filter((n, i, a) => a.filter(m => m[0] === n[0]).length > 1)

или

Object
  .values(arr.reduce((acc, n) => ((acc[n[0]] ||= []).push(n), acc), {}))
  .reduce((acc, n) => (n.length > 1 && acc.push(...n), acc), [])
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@rPman
Чтобы найти повторяющиеся значения, необходимо собрать их список, создаете объект, в ключи которого записываете ваши [0].
Затем своим простым циклом собираете новый массив, в который добавляете все значения, присутствующие в этом индекс-объекте.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы