比较2个数组与_.difference

时间:2016-09-05 17:05:47

标签: javascript lodash

我正在使用lodash进行一些计算,但是有一个功能在我预期的情况下无法正常工作,我正在使用例如'差异'。

他的用法是:

_.difference([2, 1], [2, 3]);
output: [1]

但是当我申请我的阵列时:

_.difference([5111471, 5111513], [5111471,5111505,5111513]);
output:[]

而不是给我[5111505],而是给我一个空数组。

2 个答案:

答案 0 :(得分:1)

_.difference返回第二个数组中不存在的第一个数组的元素。您的示例中没有这样的元素,因此结果为空。如果你想要一个symmetric difference(即第一个数组或第二个数组中存在的元素,但两者都不存在),你可以做类似的事情

diff = _.union(_.difference(a, b), _.difference(b, a))

答案 1 :(得分:0)

_。差异实际上并不返回两个数组之间的差异,而是返回第一个数组减去第二个数组。所以要返回[5111505],你需要这样做:

_.difference([5111471,5111505,5111513],[5111471, 5111513]);

有关详细信息,请参阅文档: https://lodash.com/docs/4.15.0#difference