Javascript 如何使用另一个对象数组过滤一个对象数组(其中包含数组)

Javascript 如何使用另一个对象数组过滤一个对象数组(其中包含数组),javascript,arrays,reactjs,object,Javascript,Arrays,Reactjs,Object,我有两个阵列: filters: { location: ['Swiss cottage','Fulham'], age: ['Giga'], } 及 我想用第一个过滤第二个,我应该怎么做?你可以这样做。如果是其中一个筛选器,请将&&更改为| let过滤器={ 地点:[“瑞士小屋”、“富勒姆”], 年龄:['Giga'], } 让数据=[ { “地点”:“瑞士小屋”, “年龄”:“千兆”, }, { “地点”:“

我有两个阵列:

filters:
        {
            location: ['Swiss cottage','Fulham'],
            age: ['Giga'],
        }


我想用第一个过滤第二个,我应该怎么做?

你可以这样做。如果是其中一个筛选器,请将
&&
更改为
|

let过滤器={
地点:[“瑞士小屋”、“富勒姆”],
年龄:['Giga'],
}
让数据=[
{
“地点”:“瑞士小屋”,
“年龄”:“千兆”,
},
{
“地点”:“富勒姆”,
“年龄”:“公斤”,
},
{
“地点”:“普特尼”,
“年龄”:“微”,
}
]
设x=data.filter(d=>{
if(过滤器位置包括(d位置)和过滤器年龄包括(d年龄))
返回d;
});

控制台日志(x)
您可以通过使用值检查条目中的每个键来获取具有可编辑数据集的
过滤器的条目,并过滤
数据

因此,您只会得到与
过滤器的所有属性匹配的对象

这种方法要求
过滤器
数据
具有相同的属性名称

并用

所有搜索的属性必须匹配

var filters={位置:['Swiss-cottle','Fulham',年龄:['Giga']},
数据=[{地点:“瑞士小屋”,年龄:“千兆”},{地点:“富勒姆”,年龄:“基洛”},{地点:“普特尼”,年龄:“微型”},
条目=对象。条目(过滤器),
result=data.filter(o=>entries.every([k,v])=>v.includes(o[k]));
控制台日志(结果)
const过滤器={
地点:[“瑞士小屋”、“富勒姆”],
年龄:['Giga'],
};
常数数据=[
{
“地点”:“瑞士小屋”,
“年龄”:“千兆”,
},
{
“地点”:“富勒姆”,
“年龄”:“公斤”,
},
{
“地点”:“普特尼”,
“年龄”:“微”,
}
];
常量输出=数据.过滤器(项=>{
返回filters.location.indexOf(item.location)>-1和filters.age.indexOf(item.ages)>-1;
});

log(输出)
很简单,“过滤器”对象中的数组需要包含相应的值

let filteredData = data.filter((x) => 
        filters.location.includes(x.location) && 
        filters.age.includes(x.ages));
let filteredData = data.filter((x) => 
        filters.location.includes(x.location) && 
        filters.age.includes(x.ages));