2017-10-19 38 views
0

我有這個功能來過濾從阿賈克斯如何使用jQuery返回帶有多個標籤的變量?

 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

定義一個帶有兩個參數的函數:一個對象和元素。

  • 地圖每個鍵中的對象的條件

  • 的結果的空間。然後,降低所得的布爾值數組。


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));