2017-03-06 110 views
0

我有一個數組值(1,2,3)和結果數組(y,n,y)。我想根據結果過濾值。爲了這個目的,我使用的arr.filter能力,下面,我通過常用3作爲上下文:節點JS - 過濾數組

 var arr = ["1","2","3"]; 
     var res = ["y","n","y"]; 
     var rarr = res.filter(function(item,index){ 
      if (item==='y') { 
      fRes.push(this[index]); 
      }; 
      return (item==='y'); 
     },arr); 

     console.log(fRes); 
     console.log(rarr); 

基於我在MDN看到陣列過濾的醫生,我很驚訝,RARR沒有與fRes(這是我正在尋找的)相同的值。我的理解是,測試是基於res中的值,如果成功,則從上下文(這裏是arr)中選擇相應的項目。這似乎並非如此(因此,我有這種推動來構建我期待的結果表)?謝謝 - 基督教

回答

2

您可以使用index,它是過濾器中的第二個參數,用於過濾arr,其中res中具有相同索引的元素爲y

var arr = ["1","2","3"]; 
 
var res = ["y","n","y"]; 
 

 
var result = arr.filter(function(e, i) { 
 
    return res[i] == 'y' 
 
}) 
 

 
console.log(result)

+0

謝謝 - 尋找不同的事情幫助:-) – Christian68