我正在通過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