使用Array.filter和Array.every方法结合循环,对每个对象进行属性比较,实现过滤。示例代码如下:
const objArr = [
{ name: 'apple', color: 'red', weight: 0.2 },
{ name: 'banana', color: 'yellow', weight: 0.3 },
{ name: 'orange', color: 'orange', weight: 0.25 },
];
const filterArr = [
{ prop: 'color', value: 'red' },
{ prop: 'weight', value: 0.3 },
];
const filteredArr = objArr.filter(obj => {
return filterArr.every(filter => {
return obj[filter.prop] === filter.value;
});
});
console.log(filteredArr);
此时输出结果:
[ { name: 'banana', color: 'yellow', weight: 0.3 } ]
说明通过属性color为red和weight为0.3来过滤objArr数组,得到仅包含一个满足条件的banana对象的filteredArr数组。
上一篇:不知道对象类型如何解包