JavaScript的Set对象的异常行为

时间:2019-11-18 13:39:00

标签: javascript set

只是发现了JS的Set对象的奇怪行为,并决定询问stackoverflow社区:)
这就是问题所在:

控制台屏幕:
enter image description here

复制粘贴代码:

let a = new Set([1])
let b = new Set([2, 3])
a.add(...b)  // result is set of {1, 2}


问题是在添加函数调用之后,集合a不包含值3。 这种行为有一个解释还是更像是一个错误?
预先感谢

2 个答案:

答案 0 :(得分:3)

您可以添加创建一个新的集合,如下所示:

let a = new Set([1])
let b = new Set([2, 3])
const c = new Set([...a, ...b])

变量c包含您需要的所有项目。

问题在于,如果该集合的add方法仅添加一个值,则该方法仅获取一个参数,而没有参数。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/add

答案 1 :(得分:0)

如果您这样做:

let a = new Set([1])
a.add(2,3);

a仍将只有1,2作为元素。传播算子基本上与上述相同