如何使用jQuery返回带有多个标签的变量?

时间:2017-10-19 03:02:32

标签: javascript jquery

我有这个功能来过滤从ajax

中检索到的数据
      var csvf = data.filter(function (el) {
          return ['TRUCK_CPX'].indexOf(el.TAG) >= 0
          && ['CA5533'].indexOf(el.Chave) >= 0

               });

我所要做的就是创建一个动态函数来做类似的事情:

function datafilter(x, y) {
// I don't know what to do here //
}

有关:

var csvf = data.filter(function (el) {

//Using one tag://
function datafilter('TAG:"TRUCK_CPX"');  });

//return ['TRUCK_CPX'].indexOf(el.TAG) >= 0//

//Using two tags://
function datafilter('TAG:"TRUCK_CPX"', 'Chave:"CA5533"');  });

//return ['TRUCK_CPX'].indexOf(el.TAG) >= 0 && ['CA5533'].indexOf(el.Chave) >= 0//

这里的任何人都知道我该怎么做?

1 个答案:

答案 0 :(得分:0)

定义一个带有两个参数的函数:一个对象和一个元素。

  • 将对象中的每个键映射到条件

  • 的结果空间
  • 然后,减少所产生的布尔数组。


function filter(item, el) {
    return Object.keys(item).map(function(key) {
        return [item[key]].indexOf(el[key]) >= 0
    })
    .reduce(function(prev, memo) {
        return prev && memo;
    }, true);
}

const matchInverse = filter(
    {glue: 'gabby', alpha: 'allison'}, 
    {alpha: 'allison', glue: 'gabby'}
);

console.log(matchInverse);

var csvf = data.filter(filter(item, el));