【发布时间】:2017-01-07 07:19:39
【问题描述】:
这是我第二次复习 codecademy 中的 Javascript 课程,但有些东西我不太明白。在名为“联系人列表项目”的练习中,以下应该是课程提供的用于查看示例的结束代码。
var friends = {};
friends.bill = {
firstName: "Bill",
lastName: "Gates",
number: "(206) 555-5555",
address: ['One Microsoft Way','Redmond','WA','98052']
};
friends.steve = {
firstName: "Steve",
lastName: "Jobs",
number: "(408) 555-5555",
address: ['1 Infinite Loop','Cupertino','CA','95014']
};
var list = function(obj) {
for(var prop in obj) {
console.log(prop);
}
};
var search = function(name) {
for(var prop in friends) {
if(friends[prop].firstName === name) {
console.log(friends[prop]);
return friends[prop];
}
}
};
list(friends);
search("Steve");
代码在控制台中产生以下结果:
bill
steve
{ firstName: 'Steve',
lastName: 'Jobs',
number: '(408) 555-5555',
address: [ '1 Infinite Loop', 'Cupertino', 'CA', '95014' ] }
{"firstName":"Steve","lastName":"Jobs","number":"(408) 555-5555","address":["1 Infinite Loop","Cupertino","CA","95014"]}
for/in 循环究竟是如何工作的?我知道这只是一个占位符,但为什么 list(friends) 只提供“bill”和“steve”?不是应该贯穿一个对象的所有属性吗?
【问题讨论】:
标签: javascript for-loop