我有这个功能来过滤从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//
这里的任何人都知道我该怎么做?
答案 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));