所以我现在正在使用js制作地址簿。这是来自codecademy的练习。我现在正在尝试编写一个列出所有用户的函数。以下是我到目前为止的情况:
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];
function printPerson(person) {
console.log(person.firstName + " " + person.lastName);
}
这是什么杀了我。我得到的错误是#34; SyntaxError:意外的关键字' for'。我知道这似乎有点不完整,但不知道如何解决它。有任何想法吗?
var list = function () {
var contactsLength =
for (var i = 0; i < contacts.length; i++);
printPerson();
}
list();
答案 0 :(得分:1)
你有几个问题。其中一个被指出(错过了contactsLength
的分配;虽然如果你看看我的第二块代码,你实际上并不需要这样做。
另一个不那么明显 - 你需要将一个人传递给printPerson()
方法。您的printPerson()
方法有一个参数person
。这需要传递。
所以将代码更改为:
var list = function () {
var contactsLength = contacts.length;
for (var i = 0; i < contactsLength; i++)
// You need to pass in the person to print!
// contacts[i] is going to fetch the person in the list at position i
printPerson(contacts[i]);
}
list();
此外 - 确实不需要contactsLength。您只需在循环中调用contacts.length
(就像之前一样)
var list = function () {
for (var i = 0; i < contacts.length; i++)
printPerson(contacts[i]); // You need to pass in the person to print!
}
list();
答案 1 :(得分:0)
var contactsLength =
该行导致语法错误。
我猜你想要:
var contactsLength = contacts.length;
for (var i = 0; i < contactsLength; i++) {
printPerson();
}
注意您的循环也缺少结束括号。