【发布时间】:2022-08-17 16:21:48
【问题描述】:
我有一个看起来像这样的数组:
const arrayObj = [
{
id: 1,
itemsList: [
{
name: \"Paul\",
},
{
name: \"Newman\",
},
],
},
{
id: 2,
itemsList: [
{
name: \"Jack\",
},
{
name: \"Man\",
},
],
},
]
我想要的是过滤其 itemsList 包含具有特定值名称的对象的对象。例如,我希望能够过滤出一个包含对象的数组,其内部对象的名称包含 \"ul\"(在本例中,名称 Paul 包含 \"ul\"),它应该给我这样的输出:
const outputArray = [
{
id: 1,
itemsList: [
{
name: \"Paul\",
},
{
name: \"Newman\",
},
]
}
]
到目前为止,我只能用这个函数过滤出一个简单的平面对象数组:
function filterByName(array: any, string: any) {
return array.filter((obj: any) =>
[\"name\"].some((key: any) =>
String(obj[key]).toLowerCase().includes(string.toLowerCase())
)
);
}
但我不知道如何将它应用到我的案例中。
-
这回答了你的问题了吗? JavaScript - Filter Nested Arrays
标签: javascript arrays