如何过滤一个关联数组与另一个数组?
function filter (a,f) {
console.log (a) ;
console.log (f) ;
//Using f as filter, How to get only these rows fom a ?
//{"XD_A":"XDR","XD_B_1":"38","XD_B_2":"PB"},
//{"XD_A":"XDR","XD_B_1":"38","XD_B_2":"PB"},
}
function test() {
var data = [{"XD_A":"XDL","XD_B_1":"38","XD_B_2":"PB"},
{"XD_A":"XDR","XD_B_1":"51","XD_B_2":"PB"},
{"XD_A":"XDL","XD_B_1":"58","XD_B_2":"PB"},
{"XD_A":"XDR","XD_B_1":"38","XD_B_2":"PB"},
{"XD_A":"XDL","XD_B_1":"76","XD_B_2":"PB"},
{"XD_A":"XDR","XD_B_1":"38","XD_B_2":"PB"}] ;
var filters =[{"XD_A":"XDR"},{"XD_B_1":"38"}] ;
filter (data,filters) ;
}
提前致谢,
最诚挚的问候
马西莫
最佳答案
let data = [{"XD_A":"XDL","XD_B_1":"38","XD_B_2":"PB"},
{"XD_A":"XDR","XD_B_1":"51","XD_B_2":"PB"},
{"XD_A":"XDL","XD_B_1":"58","XD_B_2":"PB"},
{"XD_A":"XDR","XD_B_1":"38","XD_B_2":"One"},
{"XD_A":"XDL","XD_B_1":"76","XD_B_2":"PB"},
{"XD_A":"XDR","XD_B_1":"38","XD_B_2":"Two"}],
filters =[{"XD_A":"XDR"},{"XD_B_1":"38"}];
console.info(filter(data, filters));
function filter(d, f){
return data.filter(e => {
try{
f.forEach(o => {
Object.keys(o).forEach(key => {
if(e[key] !== o[key]) throw new 1;
});
});
return true;
}catch(e){
return false;
}
});
}
关于Javascript 过滤关联数组与另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40968227/