以下是一个示例代码,演示如何按照条件和对象属性类型筛选数组:
// 一个示例数组
const arr = [
{ name: 'John', age: 25, city: 'New York' },
{ name: 'Jane', age: 30, city: 'Los Angeles' },
{ name: 'Mike', age: 35, city: 'Chicago' }
];
// 筛选条件
const condition = {
age: 30,
city: 'Los Angeles'
};
// 筛选函数
function filterArray(arr, condition) {
return arr.filter(item => {
// 遍历条件对象的属性
for (let key in condition) {
// 如果对象属性不存在或者属性值不匹配,返回false
if (!item.hasOwnProperty(key) || item[key] !== condition[key]) {
return false;
}
}
// 所有条件都匹配,返回true
return true;
});
}
// 筛选数组
const filteredArray = filterArray(arr, condition);
console.log(filteredArray);
运行以上代码,将输出以下结果:
[
{ name: 'Jane', age: 30, city: 'Los Angeles' }
]
代码中的filterArray
函数接受一个数组和一个条件对象作为参数,使用Array.filter
方法遍历数组,并使用for...in
循环遍历条件对象的属性。对于每个对象,如果属性不存在或者属性值不匹配条件对象的对应属性值,则返回false
。如果所有条件都匹配,则返回true
,从而保留在筛选后的数组中。
上一篇:按照条件改变行的顺序
下一篇:按照条件将列分割为多个列