Javascript Underline.js-是否有一个函数可以生成两个数组之差的数组?

Javascript Underline.js-是否有一个函数可以生成两个数组之差的数组?,javascript,underscore.js,Javascript,Underscore.js,在下划线.js中寻找一个函数,该函数将接受2个数组并返回一个新的唯一值数组?像没有 _.without([0, 1, 3, 9], [1, 3]); 我想返回=>[0,9] 看起来_without的第二个参数是一个值列表,而不是数组。有人知道吗 如果下划线有我要找的特定函数?或者我可以获取一个现有数组并将其转换为函数所期望的值 谢谢, ~ck位于圣地亚哥\u0.with.apply([arr1].concat(arr2)) var result = _.reject([0, 1, 3, 9],

在下划线.js中寻找一个函数,该函数将接受2个数组并返回一个新的唯一值数组?像没有

_.without([0, 1, 3, 9], [1, 3]);
我想返回
=>[0,9]

看起来_without的第二个参数是一个值列表,而不是数组。有人知道吗 如果下划线有我要找的特定函数?或者我可以获取一个现有数组并将其转换为函数所期望的值

谢谢,
~ck位于圣地亚哥

\u0.with.apply([arr1].concat(arr2))

var result = _.reject([0, 1, 3, 9], function(num) {
                return _.include([1, 3], num);
            });
[[0,1,3,9]].concat([1,3])
[[0,1,3,9],1,3]

.[0,1,3,9,1,3])是
.[0,1,3,9,1,3]是
.[0,1,3,9,1,3]是

你有一个非常好的
。没有
方法。因此,只需将数组转换为可以传递给函数的值列表。这就是
函数的目的。原型。应用

函数应该提供您想要的:

_.difference([0, 1, 3, 9], [1, 3]); // => [0, 9]

Lo Dash是下划线的扩展,下面是您需要的:

\uuxor.xor

创建一个数组,该数组是所提供数组的对称差。看


谢谢你的编辑,杰夫。输入错误。两种解决方案都是正确的。但是,我喜欢您将参数转换为函数所需的参数样式。做得好!!!这是不推荐使用的,应该使用差分函数。我没有看到一个函数在([0,1,3,9],[1,3,12])的情况下给出[0,9,12]。我认为这是“分离”任何描述你的代码片段在做什么?@kaiser:
reject
获取一个列表和一个函数,作为“真实性测试”,询问是否应该拒绝每个项目。在这种情况下,指定该函数检查给定项目是否包含在列表中
[1,3]
。如果是,它将返回
true
reject
将拒绝该值。回到顶层,
reject
将获得原始列表,并将返回一个没有任何拒绝值的新列表。
_.xor([1, 2, 3], [5, 2, 1, 4]);
// → [3, 5, 4]