删除另一个数组中包含的所有元素
我正在寻找一种有效的方法来从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