@rasimzes

Как сравнить свойства массива?

Имеется массив (изначально количество массивов внутри mainList всегда разное, как и количество объектов.):
let mainList = [
    [
        { id: 1, name: 'Jhon', last: 'last'},
        { id: 2, name: 'q', last: 'last1'},
        { id: 3, name: 'w', last: 'last2'},
        { id: 4, name: 'e', last: 'last3'},
    ],
    [
        { id: 11, name: 'Jhon', last: 'last'},
        { id: 21, name: 'as', last: 'last11'},
        { id: 31, name: 'sd', last: 'last21'},
        { id: 41, name: 'ad', last: 'last31'},
    ],
    [
        { id: 12, name: 'Jhon', last: 'last'},
        { id: 22, name: 'z', last: 'last12'},
        { id: 32, name: 'x', last: 'last22'},
        { id: 42, name: 'c', last: 'last32'},
    ],
]

Как получить новый массив newMainList внутри которого будут "подмассивы" с одинаковым полем 'name'? Притом количество "подмассивов" должно оставаться таким-же как и было изначально. Т.е.
let newMainList = [
    [
        { id: 1, name: 'Jhon', last: 'last'},
    ],
    [
        { id: 11, name: 'Jhon', last: 'last'},
    ],
    [
        { id: 12, name: 'Jhon', last: 'last'},
    ],
]
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
arr.map((n, i, a) => n.filter(x => a.every((m, j) => i === j || m.some(y => y.name === x.name))))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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