我正在进行codeacademy课程部分"建立联系人列表" ..这里有什么问题?不断收到错误"哎呀,再试一次。您的搜索功能似乎不会返回Steve的联系信息。" (http://www.codecademy.com/courses/javascript-beginner-en-3bmfN/0/7)
var friends = {};
friends.bill = {
firstName: "Bill",
lastName: "Gates",
number: "(206) 555-5555",
address: ['One Microsoft Way', 'Redmond', 'WA', '98052']
};
friends.steve = {
firstName: "Steve",
lastName: "Jobs",
number: "(556) 555-5555",
address: ['178 martio', 'cocoa', 'CA', '95074']
};
var list = function(friends) {
for (var key in friends) {
console.log(key);
}
};
var search = function(friends) {
for (var key in friends) {
if (friends[key].firstName === "Bill" || friends[key].firstName === "Steve") {
console.log(friends[key]);
return friends[key];
} else {
console.log("couldn't find them");
}
}
};
答案 0 :(得分:5)
错误在搜索功能中:
说明告诉你:
定义一个带有单个参数name的函数搜索。如果 传递给函数的参数匹配中的任何名字 朋友们,应该将该朋友的联系信息记录下来 控制台并将其返回。
简而言之,当您提供朋友时,它会要求您创建一个功能,其中提供您正在搜索的人的名称。 全局变量。
练习的目标似乎是通过使用:
search("steve");
你应该得到结果:
Object :
{ firstName: 'Steve',
lastName: 'Jobs',
number: '(556) 555-5555',
address: [ '178 martio', 'cocoa', 'CA', '95074' ] }
在您的(当前)搜索功能中,您将获得的结果不是来自针(搜索参数),而是来自您自己的首选项,在if条件中定义:
if (friends[key].firstName === "Bill" || friends[key].firstName === "Steve")
因此,我们要做的是:
全部放在一起:
var search = function(name) { // <-- note the name instead of friends.
for (var key in friends) {
if (friends[key].firstName === name) { // <-- note that if
console.log(friends[key]);
return friends[key];
} else {
console.log("couldn't find them");
}
}
};
你已经完成了!
无论如何,好的尝试,你非常接近解决方案。 如果您仍有任何问题或需要任何澄清,请随时发表评论。答案 1 :(得分:1)
用于列表:
list(friends);
和搜索:
search(friends);