我正在通过codeacademy的javascript练习之一,并遇到此问题。以下代码由codeacademy提供。基本的javascript - 引用数组中的对象
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];
}
}
};
我不明白的是,在搜索功能中,为什么我需要写出'朋友[道具]'而不是'道具'。如果for/in循环遍历好友(数组?)中的每个属性,为什么我需要再次指定每个prop属于哪个数组?为什么我不能使用下面的代码?
var search = function(name) {
for (var prop in friends) {
if (prop.firstName === name) {
console.log(prop);
return prop;
}
}
};
嗯,这是因为JavaScript中的循环有点混乱。检查http:// stackoverflow。com/a/9329476/60518 –
请阅读我对我的答案所作的编辑 - 这很重要,否则可能会遇到意外错误。 – Christoph