@lexstile

Как осуществить поиск объектов по многоуровнему массиву?

Есть массив массивов объектов:
const array = [[{prop: 1},{prop: 2}],[{prop: 1}, {prop: 12}, {prop: 5}], [{prop: 6}]];

Должно получиться:
const newArray = [{prop: 1}, {prop: 1}];
Вложенных массивов может быть любое количество (максимальная вложенность как в примере).
Нужно вернуть массив объектов, у которых совпадает определенное свойство - в моем случае prop.
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const key = 'prop';
const val = 1;

const result = array.flatMap(n => n.filter(m => m[key] === val));

// или

const result = array.reduce((acc, n) => (
  n.forEach(m => m[key] === val && acc.push(m)),
  acc
), []);

// или

const result = [];

for (const n of [].concat(...array)) {
  if (n[key] === val) {
    result[result.length] = n;
  }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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