可以使用Array.filter()方法来按类型和键值与对象进行比较并过滤数组对象。下面是一个代码示例:
// 数组对象
const data = [
{ name: 'John', age: 25 },
{ name: 'Jane', age: 30 },
{ name: 'Bob', age: 20 }
];
// 定义过滤条件
const filterBy = {
name: 'John', // 键值
age: 25 // 键值
};
// 过滤数组对象
const filteredData = data.filter(obj => {
// 遍历过滤条件的键值
for (let key in filterBy) {
// 检查键值是否匹配
if (obj[key] !== filterBy[key]) {
return false; // 如果有不匹配的键值,返回false
}
}
return true; // 如果所有键值都匹配,返回true
});
console.log(filteredData);
// 输出: [{ name: 'John', age: 25 }]
在上面的示例中,我们有一个data
数组,其中包含了多个对象。我们定义了一个过滤条件filterBy
,其中包含了要匹配的键值对。然后使用Array.filter()
方法来遍历数组对象并根据过滤条件进行过滤。在filter()
的回调函数中,我们使用一个for循环来遍历过滤条件的每一个键值对,并检查是否与当前对象的对应键值匹配。如果存在不匹配的键值,就返回false,否则返回true。最后,我们得到了一个新的过滤后的数组filteredData
,其中只包含了满足过滤条件的对象。