Lodash联盟不适用于点差操作员

时间:2018-10-24 19:37:11

标签: javascript arrays lodash

我正在使用lodash及其联合功能。但是,当我在联合体内使用扩展运算符时,我不再能获得正常的预期结果。我在做什么错,为什么lodash无法与点差运算符一起工作?谢谢!

x = [1, 2, 3, 4]

y = [3, 5]

normalResult = _.union(x, y)
unexpectedResult = _.union(...x, y)

// normalResult = [1, 2, 3, 4, 5]
// unexpectedResult = [3, 5]

1 个答案:

答案 0 :(得分:1)

_.union期望每个参数都是一个数组。当您使用...x时,会将数组扩展为单独的参数,这不是它想要的。

如果您有一个二维数组,并且想将每个包含的数组与_.union合并,例如,

,那么散布运算符将非常有用。
x = [1, 2, 3, 4]
y = [3, 5]
a = [x, y];
result = _.union(...a);