Javascript. Имеют такую структуру, массив объектов, которые имеют массив items
внутри каждого
[
{
"title": "Venom",
"items": [
{
"title": "Venom title",
"active": true
},
{
"title": "Venom2",
"active": false
}
]
},
{
"title": "Video",
"items": []
},
{
"title": "Button",
"items": [
{
"title": "Button page",
"active": true
}
]
}
]
Я хочу исключить items
со свойством active: false
внутри каждого элемента, поэтому исключите элемент Venom2
{
"title": "Venom2",
"action": "venom2",
"content": "qwertrete5t5t4t5",
"active": false
}
из существующего массива.
Я делаю это с помощью forEach и накапливаю массив внутри другого, вот он
let menu = [];
v.forEach((section) => {
menu.push({
title: section.title,
items: section.items.filter(item => item.active)
})
});
Затем я попытался сделать его более красивым с двойным фильтром, но он не работает, он возвращает []
, и я в основном догадываюсь, почему ...
let menu = v.filter((section) => {
return (section.items.filter(item => item.active === true));
});
Возможно, есть более красивое (может быть, с уменьшением) решение моего дела?