使用Underscore(或Lodash),如何从另一个数组中删除数组的每个成员?

时间:2014-07-02 00:25:04

标签: javascript underscore.js lodash

我正在尝试使用Underscore(或Lodash)从一个阵列中删除另一个阵列的每个成员。例如,如果我有数组

[1, 5, 2] 

如何从其他数组中有效地删除该数组的每个成员的每个实例,例如:

[1, 1, 7, 2, 3, 6, 3, 4, 5, 6, 6, 7, 8]

我期待得到:

[7, 3, 6, 3, 4, 6, 6, 7, 8] 
结果是

。我对_.without()的所有尝试都失败了,但我有一种潜在的怀疑,我只是没有正确地调用它。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

尝试_.difference() ...

  

返回数组中不存在于其他数组中的值。

_.difference([1, 1, 7, 2, 3, 6, 3, 4, 5, 6, 6, 7, 8], [1, 5, 2]);

Demo - JSFiddle

答案 1 :(得分:1)

查看difference

var a = [1, 1, 7, 2, 3, 6, 3, 4, 5, 6, 6, 7, 8];
var b = [1, 5, 2];

console.log(_.difference(a,b));