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

JavaScript读取嵌套对象报错求助(Udacity课程作业)

为啥你的代码拿不到葡萄牙语的"hello"呀?

咱们把这个greetings想象成一个大玩具箱哈:

  • 箱子里有两个小盒子,一个叫hello,一个叫goodbye
  • 但是!hello这个小盒子不是直接装着语言卡片,而是装了一个透明的小袋子(就是代码里的数组[]),袋子里才装着那张写了各种语言问候的卡片(就是那个{ english: 'hi', ... }对象)

你之前的写法都跳过了“打开袋子”这一步,所以找不到卡片上的葡萄牙语啦:

  • greetings.hello.portuguese:你直接对着装袋子的盒子找卡片,盒子里只有袋子,没有portuguese这个东西哦
  • greetings['hello']['portuguese']:和上面一样的问题,还是没打开袋子
  • greetings['hello'][2]:这个袋子里只有1张卡片,卡片的位置编号是0(不是1哦,电脑里数组的第一个位置是0),你找第3个位置(编号2),当然是空的啦

那正确的做法是什么呢?先打开袋子拿出卡片,再找葡萄牙语:

// 先拿hello里的袋子,再拿出袋子里第1张卡片(编号0),再找portuguese
greetings.hello[0].portuguese;

// 或者用方括号写法也可以
greetings['hello'][0]['portuguese'];

这样就能拿到oi啦!要是用console.log输出的话,就是:

console.log(greetings.hello[0].portuguese); // 会打印出oi

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:38:50