[英]Printing in the console objects of an array
嗨,我一直在嘗試使用 codeacademy.com 來學習 Javascript,我已經完成了一個練習,但我寫這個練習的原因似乎沒有任何意義。這是我的代碼:
(function(){
var bob = {
firstName: "Bob",
lastName: "Jones",
phoneNumber: "(650) 777 - 7777",
email: "bob.jones@example.com"
};
var mary = {
firstName: "Mary",
lastName: "Johnson",
phoneNumber: "(650) 888 - 8888",
email: "mary.johnson@example.com"
};
var contacts = [bob, mary];
var printPerson = function(person){
console.log(person.firstName + " " + person.lastName);
}
var list = function(){
var i = contacts.length;
for(var j= 0; j < i ; j++){
printPerson(contacts[i]);
}
};
list();
})();
問題出在列表 function 中,當我嘗試調用 printPerson() function 時,我得到那個人是未定義的,但是如果我寫而不是列表() function 是這樣的:
printPerson(contacts[0]);
printPerson(contacts[1]);
一切正常。我在 list() function 中做錯了什么,它不起作用?
var list = function(){
var i = contacts.length;
for(var j= 0; j < i ; j++){
printPerson(contacts[i]);
}
};
i
在這里是一個常數。 如果你更換它:
var list = function(){
var i = contacts.length;
for(var j= 0; j < contacts.length ; j++){
printPerson(contacts[contacts.length]);
}
};
對於所有 arrays arr
, arr[arr.length]
將始終未定義。 你可能想要contacts[j]
。
for(var j= 0; j < i ; j++){
printPerson(contacts[i]); // this should be contacts[j]
}
contacts.forEach(function(contact) {
printPerson(contact);
});
var bob = {
firstName: "Bob",
lastName: "Jones",
phoneNumber: "(650) 777-7777",
email: "bob.jones@example.com"
};
var mary = {
firstName: "mary",
lastName: "Johnson",
phoneNumber: "(650) 888 - 8888",
email: "mary.johnson@example.com"
};
var contacts=[bob,mary];
console.log(mary.phoneNumber);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.