2017-05-29 57 views
0

我有陣列狀,例如:Lodash _.filter通過對象的1個多鍵

var chart = [ 
     { 
      "IDACCT": 28, 
      "LVLCOA": 2, 
      "IDPRNT": 1, 
      "NMACCI": "110-000 - ASSETS" 
     }, 
     { 
      "IDACCT": 76, 
      "LVLCOA": 2, 
      "IDPRNT": 1, 
      "NMACCI": "170-000 - FIXED ASSETS" 
     } 
    ]; 

我想返回在我的搜索(謂詞)是使用兩個密鑰的基於對象:

d = _.filter(chart,function(o,e){ 
       return o.LVLCOA === 2 && o.IDPRNT === e   
      }); 

這不工作。我需要提供一些參數給函數。問題e在函數中不被識別。

回答

0

當然,當您嘗試將數字與未聲明的變量e進行比較時,並不會。我想你想把它與另一個數字進行比較?

+0

我想是的。 e來自處理程序事件。任何建議?無論如何,但是當我console.log(電子)。它打印出號碼 –

+0

我會更新關於這個問題的論點。但是e仍然不能識別 –

+0

當你把一個斷點放到那條線上,當你把鼠標懸停在'e'上,或者當你在那時執行'console.log'時會發生什麼? –

0

在您的具體情況下,您可以設置一個鏈接,並調用兩個filter()調用,並完全消除謂詞函數。通過filter()對象shorthands應該是足夠的:

var e = 1; 
var d = _(chart) 
    .filter({ LVLCOA: 2 }) 
    .filter({ IDPRNT: e }) 
    .value();