联系人列表Javascript

时间:2016-05-30 01:11:19

标签: javascript

我正在处理联系人列表脚本。列表功能正常。

该函数应该采用参数名称。如果参数匹配任何名字,账单或史蒂夫,它应该将朋友的联系信息记录到控制台并返回它。

我尝试在我的搜索功能中执行此操作,但未返回预期值(联系信息 - 更具体地说,电话号码)。我假设它是我的方法和对象构造函数的误解。

// Creating friends object
var friends = new Object();

// Adding friends with name, phone number
friends.bill = new Object();
// Giving data to Bill
friends.bill.firstName = "Bill";
friends.bill.lastName = "Gates";
friends.bill.number = "623523";
friends.bill.address = ['One Microsoft Way','Redmond','WA','98052']

friends.steve = new Object();
// Givin data to Steve
friends.steve.firstName = "Steve";
friends.steve.lastName = "Jobs";
friends.steve.number = "73472"
friends.steve.address = ['1 Infinite Loop','Silicon Valley','CA','64326']

// Search function
var search = function(name) {
    for (var key in friends) {
        if(name === friends.name.firstName) {
           console.log(friends.name.number);
            return friends.name.number;
        }
    };    
}

1 个答案:

答案 0 :(得分:0)

你快到了。一个朋友"是friends对象/字典的属性。 for(var key in friends)friends对象的属性的名称/键之间(并将key变量一个接一个地分配给这些属性)。要取一个房产/"朋友"从friends使用其密钥,您应该使用friends[key](其中key是一个字符串)。

请注意以下这些例子之间的区别:

var key = "james";
friends[key];     // Fetch the property with the key "james".
friends.key;      // Fetch the property with the key "key".
friends["james"]; // Fetch the property with the key "james".
friends.james;    // Fetch the property with the key "james".

以下是解决问题的方法:



// Creating friends object
var friends = new Object();

// Adding friends with name, phone number
friends.bill = new Object();
// Giving data to Bill
friends.bill.firstName = "Bill";
friends.bill.lastName = "Gates";
friends.bill.number = "623523";
friends.bill.address = ['One Microsoft Way','Redmond','WA','98052']

friends.steve = new Object();
// Givin data to Steve
friends.steve.firstName = "Steve";
friends.steve.lastName = "Jobs"; // Typo here: bill -> steve.
friends.steve.number = "73472"; // Same as above.
friends.steve.address = ['1 Infinite Loop','Silicon Valley','CA','64326']


// Printing out entries in friend object
var list = function(parameter){
for (var key in friends){
    console.log(key);

}
}

// Search function

var search = function(name){
  for (var key in friends){
    var friend = friends[key];
    if(name === friend.firstName){
      console.log(friend.number);
      return friend.number;
    }
  };
}

search("Steve");