2015-06-24 22 views
3

我正在做Codeacademy類部分「建立聯繫人列表」..這裏有什麼問題?不斷收到錯誤「哎呀,再試一次,看起來你的搜索功能不會返回Steve的聯繫信息。」 (http://www.codecademy.com/courses/javascript-beginner-en-3bmfN/0/7Codeacademy聯繫人列表建設7/8 ...不返回聯繫信息

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

回答

5

的錯誤是在搜索功能:

的說明告訴你:

定義一個函數的搜索是需要一個參數,名稱。如果傳遞給函數的參數 與 朋友中的任何名字匹配,則它應該將該朋友的聯繫信息記錄到 控制檯並返回。

簡而言之,它要求你要創造一個你提供名稱您正在搜索的人的功能,而你提供朋友這也是全局變量

的exercice的目標似乎是,通過使用:

search("steve"); 

你應該得到的結果:

Object : 
{ firstName: 'Steve', 
    lastName: 'Jobs', 
    number: '(556) 555-5555', 
    address: [ '178 martio', 'cocoa', 'CA', '95074' ] } 

在你(電流)的搜索功能,您將得到的結果不從針(搜索參數),但從您自己的喜好,在您的條件定義:

if (friends[key].firstName === "Bill" || friends[key].firstName === "Steve") 

因此,我們所要做的,就是:

  • 設置作爲參數
  • 環路朋友全局變量
  • 檢查,如果朋友[關鍵] .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

好再試一次,你是相當接近的解決方案。 如果您仍然有任何問題或需要任何澄清隨時發表評論。

+0

OMG謝謝謝謝謝謝!大聲笑我有一個問題,但。如果我用'firstName'設置名字,爲什麼我要使用'function(name)....如果我沒有告訴它專門尋找firstName,計算機如何知道「Steve」是名字? –

+0

我想我問的是電腦如何知道「史蒂夫」是什麼名字?這個問題有意義嗎?非常感謝您的幫助,我非常感謝。 :) –

+0

@karmadreamwalker:搜索功能的範圍是在** friends **變量裏面找到一些東西:你目前在codeacademy中沒有看到,但是爲了實際執行** search **功能執行它,你通過做:'search(「somename」);'。簡而言之,函數的作用範圍是,如果你寫了:'search(「bill」);'它需要告訴你關於** bill **的信息,如果有一天你會添加「karl」到你的**朋友**的對象通過寫作:'搜索(「卡爾」);'它會發布關於卡爾的信息,得到它? – briosheje

1

使用上市:

list(friends); 

和搜索:

search(friends);