2016-05-30 67 views
-1

我正在處理聯繫人列表腳本。列表函數工作正常。聯繫人列表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,很好!我沒有注意到這一點。不出所料,程序運行不正常。搜索功能不正確。 –

回答

0

你快到了。 「朋友」是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");

相關問題