Codeacademy联系人列表构建7/8 ...不返回联系信息

时间:2015-06-24 16:27:19

标签: javascript

我正在进行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");
        }
    }
};

2 个答案:

答案 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")

因此,我们要做的是:

  • 名称设为参数
  • 循环朋友全局变量
  • 检查朋友[key] .firstName是否等于提供的针(姓名)。
  • 如果是,我们记录返回

全部放在一起:

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");
        }
    }
};

你已经完成了!

http://prntscr.com/7kth5t enter image description here

无论如何,好的尝试,你非常接近解决方案。 如果您仍有任何问题或需要任何澄清,请随时发表评论。

答案 1 :(得分:1)

用于列表:

list(friends);

和搜索:

search(friends);