我有这个数组:
defaultColumnsWithItems = [
{
column: 'Contrie', items: [
{ id: 1, label: 'USA', selectedItem: true },
{ id: 2, label: 'FRANCE', selectedItem: false },
{ id: 2, label: 'MAROC', selectedItem: false }
]
},
{
column: 'Categorie', items:
[
{ id: 0, label: 'Alimentaion', selectedItem: true },
{ id: 1, label: 'ricolage', selectedItem: false },
{ id: 2, label: 'Literie', selectedItem: true },
{ id: 3, label: 'Menage', selectedItem: false },
]
}
];
我只想过滤具有等于 true 的选定项的元素。我试试这个:
const columnsWithSelectedItems = colmunsWithItemsToFilter.filter((columnWithItems) => {
return columnWithItems.items.filter( item => item.selectedItem === true)
})
但它返回所有元素。
谢谢你。
您应该返回带有 items 数组条件的整个对象,而不是过滤 defaultColumnsWithItems。
在这种情况下,我们使用 map 函数来返回我们的对象,对于 items 数组,我们使用 filter 函数来过滤每个 item 中的 selectedItem。
const defaultColumnsWithItems = [
{
column: 'Contrie', items: [
{ id: 1, label: 'USA', selectedItem: true },
{ id: 2, label: 'FRANCE', selectedItem: false },
{ id: 2, label: 'MAROC', selectedItem: false }
]
},
{
column: 'Categorie', items:
[
{ id: 0, label: 'Alimentaion', selectedItem: true },
{ id: 1, label: 'ricolage', selectedItem: false },
{ id: 2, label: 'Literie', selectedItem: true },
{ id: 3, label: 'Menage', selectedItem: false },
]
}
]
const items = defaultColumnsWithItems.map(el => {
return {
column: el.column,
items: el.items.filter(i => i.selectedItem)
}
})
console.log('items: ', items);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句