删除另一个数组中包含的所有元素

我正在寻找一种有效的方法来从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方式无需循环和拼接的方法?

回答:

使用Array.filter()方法:

myArray = myArray.filter( function( el ) {

return toRemove.indexOf( el ) < 0;

} );


小改进,因为对浏览器的支持Array.includes()增加了:

myArray = myArray.filter( function( el ) {

return !toRemove.includes( el );

} );


使用arrow functions:下一个适应:

myArray = myArray.filter( ( el ) => !toRemove.includes( el ) );

以上是 删除另一个数组中包含的所有元素 的全部内容, 来源链接: utcz.com/qa/397827.html

回到顶部