我们有一个对象数组,里面存储着通讯录。
函数 lookUp
有两个预定义参数:firstName
值和prop
属性 。
函数将会检查通讯录中是否存在一个与传入的 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"] }];
逻辑分析:需要对数组做一个循环,从其中得出循环的属性值.
定义了一个lookup函数如下:
function lookUp(firstName, prop){ for(var a=0;a
碰到了一点小问题 , 在写if条件的时候习惯性的把else if(contacts[a]["firstName"] == undefined)放在了最外层的if语句后面,结果导致直接返回了"No such contact"而导致循环不再进行,这不是题目要求的结果,所以要把这个放在for循环后面 , 当循环全部结束没有执行if语句的时候,只有一个情况就是firstName参数没有找到,再把"No such contact"给return 出去.