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";
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章