【发布时间】:2019-06-24 18:05:11
【问题描述】:
我试图返回一个根据对象的子属性过滤的新数组。
我正在尝试将两个过滤器嵌套在一起以实现此结果。
let header = "xyz";
let data = [{
"header": header,
items: [{
id: 1,
status: "Y"
}, {
id: 2,
status: "N"
}, {
id: 3,
status: "N"
}]
},{
"header": header,
items: [{
id: 1,
status: "N"
}, {
id: 2,
status: "Y"
}]
}];
let result = data.filter(item => {
return item.items.filter(item => {
return item.status === "Y";
})
});
预期输出
[{
"header": header,
items: [{
id: 1,
status: "Y"
}]
},{
"header": header,
items: [{
id: 2,
status: "Y"
}]
}];
如何过滤status === 'Y'所在的原始数组?
【问题讨论】:
-
是的,您的内部
filter返回一个空数组,该数组被评估为 true,因此没有任何内容被过滤。将.length添加到内部过滤器或使用.some。 -
.some返回{ id: 1, status: 'Y' }, { id: 1, status: 'N' }, { id: 2, status: 'Y' }
标签: javascript arrays