我正在寻找一种有效的方法来从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 ); } ); 使用箭头功能的下一个适应:
myArray = myArray.filter( ( el ) => !toRemove.includes( el ) ); 问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。