我有一个这样的数组
const array = [
{
name: 'Parent Brand 1',
childBrands: [
{ name: 'Child Brand 1', status: 'active' },
{ name: 'Child Brand 2', status: 'discontinued' },
]
}
, {
name: 'Parent Brand 2',
childBrands: [
{ name: 'Child Brand 1', status: 'discontinued' },
{ name: 'Child Brand 2', status: 'active' },
]
}
];
如何使它按状态过滤子品牌并返回父对象?按“活动”状态过滤后,它应该返回如下内容,
const array = [
{
name: 'Parent Brand 1',
childBrands: [
{ name: 'Child Brand 1', status: 'active' },
]
}
, {
name: 'Parent Brand 2',
childBrands: [
{ name: 'Child Brand 2', status: 'active' },
]
}
];
使用 aflatMap
并且filter
仅在我需要包含子元素的父对象时才返回子元素
{ "name": "Child Brand 1","status": "active" }
{ "name": "Child Brand 2","status": "active" }
由于您尚未发布任何代码,因此很难知道flatMap()
在这种情况下您将如何使用。您可以简单地map()
覆盖数组并过滤每个嵌套数组属性。
const array = [{ name: 'Parent Brand 1', childBrands: [{ name: 'Child Brand 1', status: 'active' }, { name: 'Child Brand 2', status: 'discontinued' },] }, { name: 'Parent Brand 2', childBrands: [{ name: 'Child Brand 1', status: 'discontinued' }, { name: 'Child Brand 2', status: 'active' },] }];
const filtered = array.map(parent => ({
...parent,
childBrands: parent.childBrands.filter(child => child.status === 'active')
}));
console.log(filtered)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句