Code Academy Javascript课程建立地址簿3/6

时间:2014-09-17 07:29:20

标签: javascript addressbook

我试图跟上此处所述的说明:Building an Address Book

&安培;那是结果:

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];

// printPerson added here
function printPerson(person){
    console.log( contacts[person].firstName + " " + contacts[person].lastName )
};

printPerson(0);
printPerson(1);

我的函数或输入参数有问题吗? 感谢。

2 个答案:

答案 0 :(得分:1)

当使用类型printPerson(0)时,这0与联系人无关,对吗?因此您的代码不正确。

您需要将联系人[0]和联系人[1]作为参数传递。你还期望这个函数能够获得鲍勃和玛丽的价值吗?

以下是解决问题的代码:

function printPerson(person){
    console.log( person.firstName + " " + person.lastName )
};

printPerson(contacts[0]);
printPerson(contacts[1]);

答案 1 :(得分:1)

除非你有一些你没有写的问题,否则你的功能或论点没有任何问题,而且它应该正常工作!

<强> See the DEMO here

此处可以讨论代码质量,因为您可以使用

而不是contacts = [bob, mary];
contacts.push(bob);
contacts.push(mary);

因此,当您需要添加其他联系人时,这样会更容易,您所做的更加静态。同样要打印所有人,您可以使用printPerson内的循环而不是两次调用:

function printPerson(){
    for(var i=0; i<contacts.length; i++) {
        console.log(contacts[i].firstName + " " + contacts[i].lastName);
}

为了通过测试,您必须按照他们的指示执行此操作:

function printPerson(person){
    console.log( person.firstName + " " + person.lastName );
}

printPerson(contacts[0]);
printPerson(contacts[1]);

他们要求你传递函数中的person对象,而你传递索引。