Node JS - 过滤数组

时间:2017-03-06 15:23:10

标签: javascript arrays filter

我有一个值数组(1,2,3)和一个结果数组(y,n,y)。我想根据结果过滤值。为此,我使用了arr.filter功能,如下所示,我将arr作为上下文传递:

        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)中选择相应的项。这似乎不是这样的(因此我有这个推动构建我正在寻找的结果表)?谢谢 - 基督徒

1 个答案:

答案 0 :(得分:3)

您可以使用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)