【发布时间】:2021-04-10 20:48:18
【问题描述】:
下面是我试图过滤掉男性和女性数组的代码。但它似乎在男性和女性变量中再次返回整个数组。
const male = await familyTree.filter(async(uncle) => {uncle.gender === 'Male'});
const female = await familyTree.filter(async(aunt) => {aunt.gender === 'Female'});
我的对象数组:
var familyTree= [
{
name: 'Ish',
gender: 'Male',
grandfather: 'null',
grandmother: 'null',
father: 'Shan',
mother: 'Anga',
wife: {}
},
{
name: 'Vich',
gender: 'Male',
grandfather: 'null',
grandmother: 'null',
father: 'Shan',
mother: 'Anga',
wife: {
name: 'Lika',
husband: 'Vich',
fil: 'Shan',
mil: 'Anga',
children: [Array]
}
},
{
name: 'Aras',
gender: 'Male',
grandfather: 'null',
grandmother: 'null',
father: 'Shan',
mother: 'Anga',
wife: {
name: 'Chitra',
husband: 'Aras',
fil: 'Shan',
mil: 'Anga',
children: [Array]
}
},
{
name: 'Satya',
gender: 'Female',
grandfather: 'null',
grandmother: 'null',
father: 'Shan',
mother: 'Anga',
husband: 'Vyan',
children: [ [Object], [Object], [Object] ]
}
]
当我在控制台中打印男性和女性时,它会再次返回整个数组而不过滤它们。可能是什么原因?
【问题讨论】:
-
您在两种过滤方法中都缺少
return。 -
另外:
filter不返回承诺,即使您将async函数作为回调传递给它,所以等待filter的结果没有多大用处。您的代码中不需要async或await,因为没有异步依赖的迹象。
标签: javascript filter family-tree