如何从另一个数组的所有元素中过滤一个数组

新手上路,请多包涵

我想了解 从另一个数组的所有元素中过滤数组 的最佳方法。我尝试使用过滤器功能,但我不知道如何给它我想要删除的值。

就像是:

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 的人很有用。检查为好的答案使事情变得容易。

原文由 Robdll 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

您可以使用 filter() 函数的 this 参数来避免将过滤器数组存储在全局变量中。

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

原文由 Simon Hi 发布,翻译遵循 CC BY-SA 4.0 许可协议

我会做如下;

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

原文由 Redu 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题