只是发现了JS的Set对象的奇怪行为,并决定询问stackoverflow社区:)
这就是问题所在:
控制台屏幕:
复制粘贴代码:
let a = new Set([1])
let b = new Set([2, 3])
a.add(...b) // result is set of {1, 2}
问题是在添加函数调用之后,集合a
不包含值3
。
这种行为有一个解释还是更像是一个错误?
预先感谢
答案 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作为元素。传播算子基本上与上述相同