You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript计算两个Set交集输出[object Set]如何正确显示元素

问题原因

Set是JavaScript的内置引用类型,默认字符串转换结果为[object Set],在老旧运行环境中直接打印Set实例时就会显示该内容,无法看到内部存储的元素。你的交集计算逻辑本身没有问题,仅需要调整输出方式即可。

解决方案

你可以根据需求选择以下任意一种方式输出交集元素:

  • 转数组后一次性打印
    用展开运算符或者Array.from()把Set转为普通数组再打印,是最常用的方式:
    const setA = new Set([1, 2, 3, 4]);
    const setB = new Set([3, 4, 5, 6]);
    
    function intersection(setA, setB) {
      const result = new Set();
      for (const elem of setA) {
        if (setB.has(elem)) { 
          result.add(elem);
        } 
      }
      return result; 
    }
    
    // 方式1:展开运算符转数组
    console.log([...intersection(setA, setB)]); // 输出 [3, 4]
    
    // 方式2:Array.from转数组
    console.log(Array.from(intersection(setA, setB))); // 输出 [3, 4]
    
  • 遍历逐个输出元素
    如果不需要数组格式,可以直接遍历Set实例逐个打印内部元素:
    const intersectResult = intersection(setA, setB);
    for (const item of intersectResult) {
      console.log(item);
    }
    // 依次输出:
    // 3
    // 4
    
  • 升级运行环境
    目前新版Chrome、Firefox、Node.js 10及以上版本的控制台已经支持直接打印Set实例,会自动格式化显示内部元素,不需要额外转换。

注意:不要用字符串拼接的方式直接拼接Set实例,这种场景下会强制触发toString()转换,必然得到[object Set]的结果。

内容的提问来源于stack exchange,提问作者Steve purpose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 10:06:29