如何使用过滤器数组删除数组中的项?

时间:2017-04-20 17:31:06

标签: javascript arrays

我有一个数组:

    var arr = [1,2,4,5,1,2,3,4,5];

我有另一个阵列:

    var removeArr = [1,3,5];

我希望它删除 removeArr arr 中的元素:

    var result = arr.filter(function(item){
                 return item != removeArr[???];
                 });

我试图使用循环迭代它,但它不起作用。

5 个答案:

答案 0 :(得分:2)

您可以使用Array#filter以及Array#indexOf函数来获得所需的输出。

var arr = [1,2,4,5,1,2,3,4,5],
    removeArr = [1,3,5],
    result = arr.filter(function(item){
      return removeArr.indexOf(item) == -1;
    });
    
    console.log(result);

答案 1 :(得分:2)

 var arr = [1,2,4,5,1,2,3,4,5];
 
 var removeArr = [1,3,5];
 
 var result = arr.filter(x => !removeArr.includes(x));
 
 console.log(result);

答案 2 :(得分:2)

您可以使用Set并在过滤时进行测试。

var array = [1, 2, 4, 5, 1, 2, 3, 4, 5],
    removeArray = [1, 3, 5],
    result = array.filter((s => a => !s.has(a))(new Set(removeArray)));
    
console.log(result);

答案 3 :(得分:1)

var result = arr.filter(function(item){
    return removeArr.indexOf(item) === -1; // if the item is not included in removeArr, then return true (include it in the result array)
});

答案 4 :(得分:1)

您可以通过检查项目的索引是否为-1来检查数组是否在数组中。

var result = arr.filter(item => removeArr.indexOf(item) === -1)