Javascript 如何使用多个键值在数组中筛选数组?
Javascript 如何使用多个键值在数组中筛选数组?,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,const usersLanguageData={ 交易ID:6847655349501841000, 计数:5, 提供者列表:[ { 代码:['US'], 周末办公时间:假 }, { 代码:['US','IND'], 周末办公时间:对 }, { 代码:['US','IND','AUS'], 周末办公时间:假 }, { 代码:[], 周末办公时间:假 }, { 周末办公时间:对 } ] }; 让filterKeyName1=[“代码”]; 让filterValue1=['IND','US'];
const usersLanguageData={
交易ID:6847655349501841000,
计数:5,
提供者列表:[
{
代码:['US'],
周末办公时间:假
},
{
代码:['US','IND'],
周末办公时间:对
},
{
代码:['US','IND','AUS'],
周末办公时间:假
},
{
代码:[],
周末办公时间:假
},
{
周末办公时间:对
}
]
};
让filterKeyName1=[“代码”];
让filterValue1=['IND','US'];
//让filterValue2=['US'];
让filteredProviderData=usersLanguageData.providerList.filter(函数(e){
返回filterKeyName1.every(函数(a){
console.log(e[a])
返回filterValue1.包括(e[a]);
});
});
console.log(filteredProviderData)代码>您应该在函数中再次使用every()
。在使用each()
之前,还要检查e[a]
是否存在,因为您的一个项目没有code
键
const usersLanguageData={transactionId:6847655349501841000,计数:5,提供者列表:[{code:['US',weekendOfficeHours:false},{code:['US','IND'],weekendOfficeHours:true},{code:['US','IND'AUS',weekendOfficeHours:false},{code:[],weekendOfficeHours:false},{weekendOfficeHours:true};
让filterKeyName1=[“代码”];
让filterValue1=['IND','US'];
//让filterValue2=['US'];
让filteredProviderData=usersLanguageData.providerList.filter(函数(e){
返回filterKeyName1.every(函数(a){
console.log(e[a])
返回e[a]&&filterValue1.every(x=>e[a]。包括(x));
});
});
console.log(filteredProviderData)代码>您应该在函数中再次使用every()
。在使用each()
之前,还要检查e[a]
是否存在,因为您的一个项目没有code
键
const usersLanguageData={transactionId:6847655349501841000,计数:5,提供者列表:[{code:['US',weekendOfficeHours:false},{code:['US','IND'],weekendOfficeHours:true},{code:['US','IND'AUS',weekendOfficeHours:false},{code:[],weekendOfficeHours:false},{weekendOfficeHours:true};
让filterKeyName1=[“代码”];
让filterValue1=['IND','US'];
//让filterValue2=['US'];
让filteredProviderData=usersLanguageData.providerList.filter(函数(e){
返回filterKeyName1.every(函数(a){
console.log(e[a])
返回e[a]&&filterValue1.every(x=>e[a]。包括(x));
});
});
console.log(filteredProviderData)代码>您可以使用值并根据对象的属性或空数组进行筛选
const usersLanguageData={transactionId:6847655349501841000,计数:5,提供者列表:[{code:['US',weekendOfficeHours:false},{code:['US','IND'],weekendOfficeHours:true},{code:['US','IND'AUS',weekendOfficeHours:false},{code:[],weekendOfficeHours:false},{weekendOfficeHours:true};
让key=“code”;
让值=['IND','US'];
让结果=usersLanguageData.providerList
.filter(o=>values.every(v=>(o[键]| |[])。包括(v));
控制台日志(结果)代码>您可以使用值并根据对象的属性或空数组进行筛选
const usersLanguageData={transactionId:6847655349501841000,计数:5,提供者列表:[{code:['US',weekendOfficeHours:false},{code:['US','IND'],weekendOfficeHours:true},{code:['US','IND'AUS',weekendOfficeHours:false},{code:[],weekendOfficeHours:false},{weekendOfficeHours:true};
让key=“code”;
让值=['IND','US'];
让结果=usersLanguageData.providerList
.filter(o=>values.every(v=>(o[键]| |[])。包括(v));
控制台日志(结果)
filterValue1.includes(e[a])
,如果我读对了,这是对['IND','US']的计算。includes(usersLanguageData.providerList[#]['code'])
。但是providerList中的代码是数组。而且array1.includes(array2)
。例如,如果您将['N',D'].includes(['D'])
放在控制台中,它将解析为False,那么在一个数组中使用一个键并再次检查值是否有意义,在我看来,这些值将位于另一个数组中?filterValue1.includes(e[a])
,如果我正确地阅读了这篇文章,它的计算结果将是['IND和'US'](usersLanguageData.providerList[#]['code'])
。但是providerList中的代码是一个数组。array1.includes(array2)
在控制台中,它解析为False在一个数组中使用一个键并再次检查值是否有意义,在我看来,这些值应该位于另一个数组中?