联系人列表Javascript

问题描述:

我正在处理联系人列表脚本。列表函数工作正常。联系人列表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

你有没有注意到,史蒂夫有一些比尔的信息? (在Steve部分:'friends.bill.lastname =“Jobs”') –

+0

@BubbleHacker,很好!我没有注意到这一点。不出所料,程序运行不正常。搜索功能不正确。 –

你快到了。 “朋友”是friends对象/字典的属性。 for(var key in friends) iters中的friends对象的属性的名称/键(并将key变量分配给这些属性)。要使用密钥从friends中获取一个属性/“朋友”,您应该使用friends[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");