我现在正在进行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);
答案 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,我认为他们会要你使用第一个我提到的方法。