/**
* Created by Administrator on 2017/12/8.
*/
//初始化变量
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 lookUp(firstName, prop){
for(var i =0; i < contacts.length; i++){
if((contacts[i].firstName === firstName) && (contacts[i].hasOwnProperty([prop]) === true)){
return contacts[i][prop];
} else if((contacts[i].firstName === firstName) &&
contacts[i].hasOwnProperty([prop]) === false){ // 不存在prop的时,前面的为false, 后面的也为 false那就证明不存在
return "No such property";
}
}
return "No such contact"; //以上所有的条件都不成立时就是,firsrName不存在,或是两都都不存
}
console.log(lookUp("Akira", "likes"));
console.log((lookUp("Sherlock", "likes")));
for循环contact数组的每一个项,[ ]和.有相同的作用。contact[i].firstName就是firstName的值。Obj.hasOwnProperty(propertypeName)用于检查给定的属性在当前对象实例中是否存在,返回布尔值。