Javascript for-in循环问题

时间:2015-05-06 22:00:31

标签: javascript arrays for-in-loop

我现在正在进行codecademy,而且我遇到一个涉及for-in循环的课程的问题。这项运动的要求是记录" bill"和"史蒂夫到控制台。但是,除了记录这两个字符串之外,我得到了整个数组。这里发生了什么?

   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);

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

您需要进一步指定您想要的内容。

此:

console.log(friends[p]);

应改为:

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

您的代码只会获取与friends[bill]friends[steve]相关联的所有属性。您需要他们的名字,因此您必须使用点表示法并在.firstName语句的末尾添加console.log()

正如其他人所说,你也可以使用console.log(p)来记录属性名称(所以账单和史蒂夫),但是因为你在Codecademy,我认为他们会要你使用第一个我提到的方法。