要按嵌套对象数组中的属性筛选对象数组,您可以使用数组的filter()
方法和对象的hasOwnProperty()
方法来实现。下面是一个示例代码:
// 原始对象数组
const originalArray = [
{
id: 1,
name: 'John',
address: {
city: 'New York',
country: 'USA'
}
},
{
id: 2,
name: 'Jane',
address: {
city: 'London',
country: 'UK'
}
},
{
id: 3,
name: 'Bob',
address: {
city: 'Sydney',
country: 'Australia'
}
}
];
// 筛选条件
const filterProperty = 'country';
const filterValue = 'USA';
// 使用filter()方法筛选对象数组
const filteredArray = originalArray.filter(obj => {
// 检查对象是否具有嵌套属性
if (obj.hasOwnProperty(filterProperty)) {
// 检查嵌套属性的值是否与筛选值匹配
if (obj[filterProperty] === filterValue) {
return true; // 返回匹配的对象
}
}
return false; // 返回不匹配的对象
});
console.log(filteredArray);
在上面的示例中,我们有一个原始的对象数组originalArray
。我们定义了一个筛选条件filterProperty
和filterValue
,分别表示要筛选的属性和属性值。然后,我们使用filter()
方法对原始数组进行筛选,对每个对象检查是否具有指定的嵌套属性,并检查属性的值是否与筛选值匹配。最后,我们打印出筛选后的对象数组filteredArray
。
上一篇:按嵌套对象属性对数组对象进行排序
下一篇:按嵌套对象在列表中过滤