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

如何在未知内部对象名称时指向并显示嵌套对象的属性值

如何在未知内部对象名称时指向并显示嵌套对象的属性值

嘿,我来帮你搞定这个问题!你现在的思路其实已经对了一半——已经能准确判断出哪个属性是嵌套对象了,接下来只需要对这个内部对象再做一次遍历,就能拿到它的所有属性值啦。

你可以把当前遍历到的内部对象(也就是person[x])存到一个变量里,不管它原来的键名是cars还是别的什么,都能直接通过这个变量访问它的属性。然后用另一个for...in循环遍历这个内部对象,收集所有值后再输出就行。

修改后的代码如下:

const person = {
  name: "Jack",
  family: "Miller",
  age: 27,
  cars: {
    car1: "Bens",
    car2: "Lexus"
  }
}

for (let x in person) {
  if (typeof person[x] === "object") {
    // 把当前的内部对象存下来,不用关心它原来的键名
    const innerObj = person[x];
    // 收集内部对象的所有属性值
    const innerValues = [];
    for (let key in innerObj) {
      innerValues.push(innerObj[key]);
    }
    // 用逗号连接值并输出
    document.write(innerValues.join(", ") + "<br>");
  } else {
    document.write("_<br>");
  }
}

代码说明:

  • 当typeof person[x] === "object"时,person[x]就是你要找的嵌套对象(这里是cars),我们用innerObj变量接收它,这样就不用硬写person.cars这种固定键名啦。
  • 第二个for...in循环遍历innerObj的所有键,把对应的值放进innerValues数组里。
  • 最后用join(", ")把数组里的值拼成你想要的格式,再输出就行。

运行这段代码后,就能得到你预期的输出:

_
_
_
Bens, Lexus

小提示:如果你的对象里可能出现null值,记得在判断里加上&& person[x] !== null,因为typeof null也会返回object,避免把null当成对象处理哦~

备注:内容来源于stack exchange,提问作者sourcechange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 11:49:31