【发布时间】:2013-11-26 06:21:23
【问题描述】:
我正在寻找一种有效的方法来从 javascript 数组中删除所有元素(如果它们存在于另一个数组中)。
// If I have this array:
var myArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
// and this one:
var toRemove = ['b', 'c', 'g'];
我想对 myArray 进行操作使其保持这种状态:['a', 'd', 'e', 'f']
对于 jQuery,我使用的是 grep() 和 inArray(),效果很好:
myArray = $.grep(myArray, function(value) {
return $.inArray(value, toRemove) < 0;
});
有没有一种纯 javascript 的方式来做到这一点而无需循环和拼接?
【问题讨论】:
-
Can you remove one array from another in javascript or jquery 的可能重复项 - 您在写问题时所提出的建议可能没有太多关注
-
无论如何,总会涉及到某种程度的循环。
-
如果你真的希望它“高效”,你不会使用像
.filter()这样的函数类型方法。相反,您将使用for循环。如果不需要维护原始订单,您可以避免.splice()。或者,如果您认为要删除的项目很多,有一些方法可以让.splice()更高效。
标签: javascript arrays