我试图跟上此处所述的说明: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);
我的函数或输入参数有问题吗? 感谢。
答案 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对象,而你传递索引。