先看一下原问题:
我们有一个对象数组,里面存储着通讯录。
函数lookUp有两个预定义参数:firstName值和prop属性 。
函数将会检查通讯录是否存在一个联系人的firstName属性等于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"]
}
];
首先分析题目需要吧firstName和prop都获取才能返回正确的数值,遍历数组。所以可以想到
for(contacts[I].firstName==firstName){
contacts[firstName]=contacts[I];}
设置错误
if(!contacts[firstName])
if(!contacts[firstName][prop])
其他的
return contact[firstName][I];
完整的代码为: