开发者社区> 问答> 正文

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

我正在寻找一种有效的方法来从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方法?

展开
收起
保持可爱mmm 2020-01-16 17:05:31 610 0
1 条回答
写回答
取消 提交回答
  • 使用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

    2020-01-16 17:05:44
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载