@gsdev99

Как достать вложенные массивы, элементы которых удовлетворяют условию?

Есть массив:

const arr = [
  { id: 1, arr: [{id: 1, value: 'item 1'}, {id: 2, value: 'item 2'}, {id: 3, value: 'item 3'}] },
  { id: 2, arr: [{id: 1, value: 'item 1'}, {id: 2, value: 'item 2'}, {id: 3, value: 'item 3'}] },
  { id: 3, arr: [{id: 1, value: 'item 1'}, {id: 2, value: 'item 2'}, {id: 3, value: '-'}] },
  { id: 4, arr: [] },
  { id: 5, arr: [{id: 1, value: 'item 1'}, {id: 2, value: 'item 2'}, {id: 3, value: '-'}] },
];

Надо в переменную list записать массивы, которые не пустые и в которых value не равны '-'.

let list = [];

arr.map((item) => {
  list = item.arr;

  return list;
});
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Как будем проверять, что массив нам подходит:

const isArrOK = arr => arr.length && arr.every(n => n.value !== '-');

Достаём вложенные массивы:

const newArr = arr.reduce((acc, { arr: n }) => (
  isArrOK(n) && acc.push(n),
  acc
), []);

// или

const newArr = arr.map(n => n.arr).filter(isArrOK);

// или

const newArr = [];
for (const n of arr) {
  if (isArrOK(n.arr)) {
    newArr.push(n.arr);
  }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
30 нояб. 2024, в 20:49
2000 руб./за проект
30 нояб. 2024, в 20:18
5000 руб./за проект