从一个数组中移除另一个数组的内容

5
我有两个数组。
var array1 = new Array ["a", "b", "c", "d", "e"];
var array2 = new Array ["a", "c", "d"];

我希望将array2中的元素从array1中移除。
结果为["b", "e"]
是否有类似的方法?
array1 = array1.remove(array2)

注意,我正在使用jquery-1.9.1。

可能是JavaScript数组差异的重复问题。 - Itay
5个回答

8

尝试:

var diff = $(array1).not(array2).get();

当尝试这个输出时,它是 '[1, 2, 6, diff: function]'。如何从中删除 'diff: function'? - Okky
2
在fiddle上看起来还不错,http://jsfiddle.net/nKNdA/,请在此处尝试您的数据并进行更新,然后发送链接。 - Kamil

2
function difference(source, toRemove) {
    return source.filter(function(value){
        return toRemove.indexOf(value) == -1;
    });
}

注意: 在IE9之前,Array.prototype.indexOfArray.prototype.filter不可用!


1

虽然有很多通过原生JavaScript实现的方法,但我建议查看Underscore库


1
Underscore JS 是你所需的。这个库有许多有用的数组操作函数。Underscore JS

0

Underscore.js 库有助于:这是你需要的

_.difference(array1, array2);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接