Javascript 过滤关联数组与另一个数组

标签 javascript arrays

如何过滤一个关联数组与另一个数组?

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/

相关文章:

javascript - Angular 路线不起作用。

JavaScript:禁用 Selenium ChromeDriver 中的图像

javascript - 客户端加密的有效用例是什么?

javascript - 如何在 javascript 中将这两个数组组合成一个 3d 数组

php - 如何根据键删除数组元素?

javascript - 我可以将 .map 数组转换为带双引号的逗号分隔数组吗?

javascript - force 属性始终未定义

javascript - Ember : insert errors from model into application template

php - 通过在奇数/偶数数字键上拆分数组,我做错了什么?

ios - subString emution ios