我正在经历一个 codeacademy 的 javascript 练习并遇到了这个问题。以下代码由 codeacademy 提供。
var friends = {
bill: {
firstName: "Bill",
lastName: "Gates",
number: "1",
address: ['abc', 'def', 'ghi']
},
steve: {
firstName: "Steve",
lastNAme: "Jobs",
number: "2",
address: ['abc', 'def', 'ghi']
}
};
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];
}
}
};
我不明白的是,在搜索功能中,为什么我需要写出'friends[prop]' 而不仅仅是'prop'。如果 for/in 循环遍历朋友(数组?)中的每个属性,为什么我需要再次指定每个属性所属的数组?为什么我不能使用以下代码?
var search = function(name) {
for (var prop in friends) {
if (prop.firstName === name) {
console.log(prop);
return prop;
}
}
};