我正在寻找一种从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方式无需循环和拼接的方法?
.filter()
。相反,您将使用for
循环。您可以避免.splice()
不需要维护原始订单的情况。或者,.splice()
如果您认为有很多要删除的项目,有多种方法可以提高效率。