【发布时间】:2018-08-23 04:03:23
【问题描述】:
我有一个数组,如下所示:
const persons = [
{
name: "Joe",
animals: [
{species: "dog", name: "Bolt"},
{species: "cat", name: "Billy"},
]
},
{
name: "Bob",
animals: [
{species: "dog", name: "Snoopy"}
]
}
];
现在我想根据物种进行过滤。 例如:每个养猫的人都应该被退回:
const result = [
{
name: "Joe",
animals: [
{species: "dog", name: "Bolt"},
{species: "cat", name: "Billy"},
]
}
];
我尝试过像这样的filter() 方法:
const result = persons.filter(p => p.animals.filter(s => s.species === 'cat'))
但这不会返回所需的结果(它会返回两个人)。
如何根据嵌套数组的属性过滤数组?
【问题讨论】:
-
将您的第二个
filter更改为some
标签: javascript arrays filter ecmascript-6