我们有一个联系人列表,里面存储着不同联系人的数组对象。
函数 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";
}
}
{
"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" ;
}
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" ;
}