我正在尝试过滤仅包含"isFavorite": true
的项目。
temp1 = {
"Name": "Toronto",
"Area": [
{
"Title": "Roofing",
"Details": {
"Reports": 52,
"Projects": [
{
"Name": "ITEM A",
"isFavorite": true
},
{
"Name": "ITEM B",
"isFavorite": false
},
{
"Name": "ITEM C",
"isFavorite": true
}
]
}
}
]
}
我尝试使用lodash过滤器函数,但数组返回了所有内容。
_.filter(temp1, {Area: [{Projects: [{isFavorite: true}] }]});
我尝试使用常规javascript,但仍不只返回"isFavorite": true
this.branchSummaries.filter(d => d.Area.some(p => p.Projects.some(f => f.isFavorite === true)));
答案 0 :(得分:2)
您需要首先在每个Areas
中的过滤器projects
之后遍历Area
就像这样
let data = {
"Name": "Toronto",
"Area": [
{
"Title": "Roofing",
"Details": {
"Reports": 52,
"Projects": [
{
"Name": "ITEM A",
"isFavorite": true
},
{
"Name": "ITEM B",
"isFavorite": false
},
{
"Name": "ITEM C",
"isFavorite": true
}
]
}
}
]
}
data.Area.forEach(area => {
area.Details.Projects = area.Details.Projects.filter(project => project.isFavorite)
})
console.log(data)