以下是一种按照嵌套数组对象的布尔属性对数组对象进行过滤的解决方法的代码示例:
const data = [
{
name: "John",
age: 30,
hobbies: [
{ name: "reading", isFavorite: true },
{ name: "painting", isFavorite: false },
{ name: "cooking", isFavorite: true }
]
},
{
name: "Jane",
age: 25,
hobbies: [
{ name: "gaming", isFavorite: false },
{ name: "hiking", isFavorite: true },
{ name: "photography", isFavorite: true }
]
}
];
function filterByFavoriteHobbies(data) {
// 使用filter方法过滤数组对象
const filteredData = data.filter(item => {
// 使用some方法检查hobbies数组中是否存在isFavorite属性为true的对象
return item.hobbies.some(hobby => hobby.isFavorite);
});
return filteredData;
}
const filteredData = filterByFavoriteHobbies(data);
console.log(filteredData);
运行上述代码,将会输出满足条件的数组对象:
[
{
name: "John",
age: 30,
hobbies: [
{ name: "reading", isFavorite: true },
{ name: "painting", isFavorite: false },
{ name: "cooking", isFavorite: true }
]
},
{
name: "Jane",
age: 25,
hobbies: [
{ name: "gaming", isFavorite: false },
{ name: "hiking", isFavorite: true },
{ name: "photography", isFavorite: true }
]
}
]
注意,上述代码中的filterByFavoriteHobbies
函数接受一个数组对象作为参数,并返回满足条件的数组对象。在函数内部,我们使用filter
方法过滤数组对象,并使用some
方法检查hobbies
数组中是否存在isFavorite
属性为true
的对象。