A am trying to return a new array that is filtered on sub-properties of objects.
I am trying to nest two filters together to achieve this result.
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";
})
});
Expected output
[{
"header": header,
items: [{
id: 1,
status: "Y"
}]
},{
"header": header,
items: [{
id: 2,
status: "Y"
}]
}];
How can I filter the original array where status === 'Y'?
filterreturns an empty array which is evaluated to true, so nothing gets filtered. Add.lengthto the inner filter or use.some..somereturns{ id: 1, status: 'Y' }, { id: 1, status: 'N' }, { id: 2, status: 'Y' }