Javascript for-in 循环问题

Javascript for-in loop issue

我现在正在学习 codecademy,我对涉及 for-in 循环的一课有疑问。这个练习的要求是记录 "bill" 和“steve 到控制台。但是,除了记录这两个字符串之外,我得到了整个数组。这里发生了什么?

   var friends = {
    bill: {firstName: "Bill", 
            lastName: "Ferny",
            number: "452-556-5412", 
            address: ['One Bree Hill', 'Bree', 'Middle Earth', '00000']
           },
    steve: {firstName:"Steve",
             lastName:"Rogers",
             number:"805-223-5568",
             address: ['1500 Settlers Court', 'Paso Robles', 'CA', '93446']
             }
   };
   var list = function (friends) {
       for (var p in friends) {
    console.log(friends[p]);
    }
   };
   list(friends);

console.log(friends[p]);改为console.log(friends[p].firstName);

for-in 循环中,变量设置为 属性 名称。因此,如果您想记录 属性 名称,请使用 console.log(p)friends[p] 是 属性 名称在对象中映射到的值。

您需要进一步说明您想要什么。

这个:

console.log(friends[p]);

应该改成这样:

console.log(friends[p].firstName);

您的代码仅获取与 friends[bill]friends[steve] 关联的所有属性。你想要他们的名字,所以你必须使用点符号并将 .firstName 添加到 console.log() 语句的末尾。

正如其他人所指出的,您也可以使用 console.log(p) 来记录 属性 名称(例如 bill 和 steve),但由于您在 Codecademy 上,我认为他们会需要您使用我提到的第一种方法。