Javascript中的地址簿

时间:2015-11-10 17:07:44

标签: javascript

所以我现在正在使用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();

2 个答案:

答案 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();
}

注意您的循环也缺少结束括号。