if/else问题?

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){
        return "No such contact";
      }else{
          if(contacts[i].hasOwnProperty(prop)){
          return contacts[i][prop];
         }else{
             return "No such property";
           }
        } 
    }
   }

问题:lookUp("Kristian", "lastName");总是会回到 return "No such contact";
想不通是什么原因

阅读 2.7k
3 个回答

因为循环第一次检测到"Akira" !== "Kristian" 函数就return了……

你的要求是什么?返回找到?

function lookUp(firstName, prop){
    for(var i = 0;i<contacts.length;i++){
        if(contacts[i].firstName !== firstName){
            //return "No such contact";
        }else{
            if(contacts[i].hasOwnProperty(prop)){
                return contacts[i][prop];
            }else{
                //return "No such property";
            }
        } 
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题