2016-05-30 9 views
-1

私は連絡先リストのスクリプトに取り組んでいます。リスト関数は正常に動作します。連絡先リストJavascript

引数の名前を入力します。引数が最初の名前billまたはsteveのいずれかと一致する場合は、友人の連絡先情報をコンソールに記録して返します。

私は検索機能でそれを行おうとしましたが、期待値(連絡先情報、具体的には電話番号)は返されません。私はそれが私のアプローチであり、オブジェクトコンストラクタの誤解であると仮定しています。

// 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

あなたはスティーブはビルの情報の一部を持っていることがわかりました。ここで

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". 

はあなたの問題を解決するにはありますか? (Steveセクション: 'friends.bill.lastname =" Jobs "') –

+0

@BubbleHacker、良いキャッチ!私はそれに気付かなかった。しかし、プログラムは正しく動作しません。検索機能が正しく構成されていません。 –

答えて

0

あなたはほぼあります。 「友人」は、friendsオブジェクト/辞書のプロパティです。 for(var key in friends)は、friendsオブジェクトのプロパティの名前/キーの間で繰り返します(これらのプロパティに変数keyを順番に割り当てます)。キーを使用してfriendsからプロパティ/ "friend"を取得するには、friends[key](keyは文字列)を使用する必要があります。

ないこれらの例の違いください:

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