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

如何遍历值可能为对象的JavaScript嵌套对象?

如何遍历值可能为对象的JavaScript对象?

感谢@WiktorZychla提醒我用递归的思路,周一的脑子一下子就清醒过来了!现在这个遍历方案已经可以正常运行啦。

假设我们有这样一个包含嵌套对象的示例:

const dummy = { a: 1, b: 2, c: { d: 3, e: { f: 4 } }, g: 5 };

我写了一个递归函数来完成深度遍历,它会自动识别属性值是否为对象(特意排除了null的情况,因为typeof null会返回'object'),如果是对象就继续递归遍历,直到遇到非对象类型的属性时输出完整路径:

const xavier = (value, s) => { 
  for (const key in value) { 
    // 确保只遍历对象自身的属性,不包含原型链上的属性
    if (value.hasOwnProperty(key)) { 
      if (typeof value[key] === 'object' && value[key] !== null) { 
        // 递归调用,拼接当前属性路径
        xavier(value[key], s + '.' + key); 
      } else { 
        // 输出最终的属性路径
        console.log(s + '.' + key + '...'); 
      } 
    } 
  } 
}

调用这个函数的时候,需要传入目标对象和初始的路径前缀,比如我们传入示例对象和它的变量名:

xavier(dummy, 'dummy');

运行后会得到如下输出:

dummy.a...
dummy.b...
dummy.c.d...
dummy.c.e.f...
dummy.g...

内容的提问来源于stack exchange,提问作者Chris Olaf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:58:56