JavaScript 使用循環語句查找通訊錄

我們有一個聯繫人列表,裏面存儲着不同聯繫人的數組對象。

函數 lookUpProfile 有兩個預定義參數:firstName值和prop屬性 。該函數應檢查firstName是實際聯繫人的firstName,給定的屬性(prop)是該聯繫人的屬性。

如果它們都存在,函數返回prop屬性對應的值。如果firstName 值不存在,返回 "No such contact"。如果prop 屬性不存在,返回 "No such property"
方法1:hasOwnProperty

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

function lookUpProfile(firstName, prop){
for(var i=0; i<contacts.length; i++){
    if(contacts[i].firstName==firstName){
        var a = 1;
        if(contacts[i].hasOwnProperty(prop)){
            var b=1;
            return contacts[i][prop];
        }
    } 
}
if(a!=1){
    return "No such contact";
}
if(b!=1){
    return "No such property";
}
}

方法2: 注意:將最後的return寫在循環外,如果之前有條件滿足,return之後會跳出循環。
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";
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章