【问题标题】:Unexpected behavior of JavaScript's Set object [duplicate]JavaScript的Set对象的意外行为[重复]
【发布时间】:2023-03-22 06:19:01
【问题描述】:

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

控制台屏幕:

复制粘贴代码:

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


问题是 set a 在添加函数调用后不包含值 3。 这种行为有解释还是更像是一个错误?
提前致谢

【问题讨论】:

标签: javascript set


【解决方案1】:

您可以像这样添加创建一个新集:

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

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

问题是set的add方法只得到一个参数,没有参数,如果因为这个原因只加一个值。

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

【讨论】:

    【解决方案2】:

    如果你这样做:

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

    a 仍然只有 1,2 作为元素。展开算子基本上和上面做的一样

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 2018-02-11
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多