1. 程式人生 > >通訊錄查詢(循環和if的使用) --freeCodeCamp

通訊錄查詢(循環和if的使用) --freeCodeCamp

for循環 undefined 通訊錄 contact rlock lookup row script 沒有

我們有一個對象數組,裏面存儲著通訊錄。

函數 lookUp 有兩個預定義參數:firstName值和prop屬性 。

函數將會檢查通訊錄中是否存在一個與傳入的 firstName 相同的聯系人。如果存在,那麽還需要檢查對應的聯系人中是否存在 prop屬性。

如果它們都存在,函數返回prop屬性對應的值。

如果firstName 值不存在,返回 "No such contact"

如果prop 屬性不存在,返回 "No such property"

  給出的對象數組如下:

  

        //初始化變量
var contacts = [
    {
        "firstName": "Akira",
        
"lastName": "Laine", "number": "0543236543", "likes": ["Pizza", "Coding", "Brownie Points"] }, { "firstName": "Harry", "lastName": "Potter", "number": "0994372684", "likes": ["Hogwarts", "Magic", "Hagrid"] }, { "firstName": "Sherlock",
"lastName": "Holmes", "number": "0487345643", "likes": ["Intriguing Cases", "Violin"] }, { "firstName": "Kristian", "lastName": "Vos", "number": "unknown", "likes": ["Javascript", "Gaming", "Foxes"] } ];

邏輯分析:需要對數組做一個循環,從其中得出循環的屬性值.

定義了一個lookup函數如下:

function lookUp(firstName, prop){

  for(var a=0;a<contacts.length;a++){
    if(firstName == contacts[a]["firstName"]){ 
      if(contacts[a][prop] != undefined){
        return contacts[a][prop];
      }else{
        return "No such property";
      }
    }

}return "No such contact";
}

碰到了一點小問題 , 在寫if條件的時候習慣性的把else if(contacts[a]["firstName"] == undefined)放在了最外層的if語句後面,結果導致直接返回了"No such contact"而導致循環不再進行,這不是題目要求的結果,所以要把這個放在for循環後面 , 當循環全部結束沒有執行if語句的時候,只有一個情況就是firstName參數沒有找到,再把"No such contact"給return 出去.

通訊錄查詢(循環和if的使用) --freeCodeCamp