第一个帖子!
我已经做了一些搜索,找到并尝试了一些接近我的问题的答案,但没有一个完全匹配。
我有一个对象数组:
const kids = [
{ name: 'alice',
age: 13,
pets: [
{ type: 'fish', pet_name: 'nemo' },
{ type: 'cat', pet_name: 'snuffles'},
{ type: 'cat', pet_name: 'pixel'}
]
},
{ name: 'bob',
age: 7,
pets: [
{ type: 'dog', pet_name: 'rover' }
]
},
{ name: 'chris',
age: 15,
pets: [
{ type: 'cat', pet_name: 'fluffy' },
{ type: 'donkey', pet_name: 'eeyore' }
]
}
]
我想得到所有拥有猫的孩子,使用高阶函数而不是循环。我想要的结果是
cat_owners = [
{ name: 'alice', age: 13,
pets: [ { type: 'cat', pet_name: 'snuffles' },
{ type: 'cat', pet_name: 'pixel' } ]
},
{ name: 'chris', age: 15,
pets: [ { type: 'cat', pet_name: 'fluffy' } ] }
]
我已经尝试了过滤器、forEach、find 的各种组合,例如
const cat_owners = kids.filter(kid => kid.pets.find(pet => pet.type === 'cat') )
const kids = [
{ name: 'alice',
age: 13,
pets: [
{ type: 'fish', pet_name: 'nemo' },
{ type: 'cat', pet_name: 'snuffles'},
{ type: 'cat', pet_name: 'pixel'}
]
},
{ name: 'bob',
age: 7,
pets: [
{ type: 'dog', pet_name: 'rover' }
]
},
{ name: 'chris',
age: 15,
pets: [
{ type: 'cat', pet_name: 'fluffy' },
{ type: 'donkey', pet_name: 'eeyore' }
]
}
];
const cat_owners = kids.filter(kid => kid.pets.find(pet => pet.type === 'cat'));
console.log(cat_owners);
但这也返回了爱丽丝的鱼和克里斯的驴——我只想要猫。我已经成功地把自己弄糊涂了,我只是找不到正确的调用来让我的爱猫者和他们的猫,我已经为这个“简单”的问题苦苦挣扎了几个小时了……
所以我的问题是“我如何达到这个预期的结果?”
红糖糍粑
慕田峪9158850
qq_花开花谢_0
相关分类