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
相关产品推荐
相关产品推荐

