通訊錄查詢(循環和if的使用) --freeCodeCamp
阿新 • • 發佈:2017-11-15
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