如何从另一个数组的所有元素中筛选数组

2022-08-30 00:13:13


我想了解从另一个数组的所有元素中筛选数组的最佳方法。我尝试使用过滤器功能,但它没有出现在我如何为它提供我想要删除的值。
像这样:

var array = [1,2,3,4];
var anotherOne = [2,4];
var filteredArray = array.filter(myCallback);
// filteredArray should now be [1,3]


function myCallBack(){
    return element ! filteredArray; 
    //which clearly can't work since we don't have the reference <,< 
}

如果过滤器功能不起作用,您将如何实现这一点?
编辑:我检查了可能的重复问题,对于那些容易理解javascript的人来说,这可能很有用。检查为好的答案使事情变得容易。


答案 1

我将这样做;

var arr1 = [1,2,3,4],
    arr2 = [2,4],
    res = arr1.filter(item => !arr2.includes(item));
console.log(res);

答案 2

可以使用函数的参数来避免将筛选器数组存储在全局变量中。thisfilter()

var filtered = [1, 2, 3, 4].filter(
    function(e) {
      return this.indexOf(e) < 0;
    },
    [2, 4]
);
console.log(filtered);