假设我有一个具有的对象数组
名称:id:学校:地址:
我知道如何按一个类别进行筛选,例如
data.filter(data => data[name].includes("Lake"))
以获取名称中包含单词Lake的所有对象。
但是,有没有一种方法可以过滤数据,以获得任何字段都包含单词的所有对象?
data.filter(data => data.includes("Lake"))
不起作用,我已经试过了。
谢谢!
const arr = [
{ id: 1, name: "name_1", school: "school_1", address: "address_1" },
{ id: 2, name: "lake", school: "school_2", address: "address_2" },
{ id: 3, name: "name_3", school: "lake", address: "address_3" },
{ id: 4, name: "name_4", school: "school_4", address: "lake" }
];
const anyKeyFilter = item => obj => Object.values(obj).includes(item);
const filteredArr = arr.filter(anyKeyFilter("lake"));
console.log(filteredArr);
如果需要,可以使用trim()
和.toLowerCase()
。
const arr = [
{ id: 1, name: "name_1", school: "school_1", address: "address_1" },
{ id: 2, name: "lake", school: "school_2", address: "address_2" },
{ id: 3, name: "name_3", school: "lake", address: "address_3" },
{ id: 4, name: "name_4", school: "school_4", address: "lake" }
];
const filteredArr = arr?.filter((data) => Object.values(data)?.includes('lake'));
console.log(filteredArr);