2017-03-06 79 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