可以使用JavaScript中的filter()方法来实现:
const array = [
{ name: 'John', age: 25, gender: 'male' },
{ name: 'Jane', age: 30, gender: 'female' },
{ name: 'Bob', age: 20, gender: 'male' },
{ name: 'Alice', age: 35, gender: 'female' }
];
const keywords = ['age', 'gender'];
const filters = {
age: [25, 30],
gender: ['female']
};
const filteredArray = array.filter(item => {
return keywords.every(key => {
if (filters[key].length) {
return filters[key].includes(item[key]);
}
return true;
});
});
console.log(filteredArray);
// Output: [{ name: 'Jane', age: 30, gender: 'female' }]
在该示例中,原始数组包含四个对象。现在我们想对它们进行筛选,只保留包含特定年龄或性别的对象。为了实现这个目标,我们使用了关键字和过滤器数组。然后我们使用filter()方法对原始数组进行筛选。使用every()方法来确保每个关键字都被过滤器数组包含。这将过滤掉包含非常规值的对象,只保留符合条件的对象。最后,我们将筛选后的数组输出到控制台。
下一篇:按关键字或类别选中相关复选框?