javascript从数组中删除数组

Dav*_*eng 24 javascript arrays jquery

假设我们有以下数组:

a = [1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

和

b = [2, 3]
Run Code Online (Sandbox Code Playgroud)

如何从a中减去b?所以我们c = a - b应该等于[1, 4, 5].jQuery解决方案也没关系.

ick*_*fay 43

假设你在有一个浏览器Array.prototype.filter和Array.prototype.indexOf,你可以这样做:

var c = a.filter(function(item) {
    return b.indexOf(item) === -1;
});
Run Code Online (Sandbox Code Playgroud)

如果有问题的浏览器没有这些方法,您可以填充它们.

  • 顺便说一下IE8是市场上唯一没有实现这些方法的相关浏览器......来源:http://kangax.github.com/es5-compat-table/ (2认同)

Moh*_*man 8

这是@icktoofay 发布的答案的修改版本。

在 ES6 中,我们可以使用:

这将简化我们的代码:

var c = a.filter(x => !b.includes(x));
Run Code Online (Sandbox Code Playgroud)

演示:

var c = a.filter(x => !b.includes(x));
Run Code Online (Sandbox Code Playgroud)