2017-03-02 49 views
0

我实际上有一个小问题:我想创建一个函数,它在数组中的一个对象中循环。功能返回错误信息不起作用

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++) { 
     for (var prop1 in contacts[i]) { 
      if (contacts[i][prop1] == firstName) { 
       if (contacts[i].hasOwnProperty(prop)) { 
        return contacts[i][prop]; 
       } 
      } 
     } 
    } 
} 

lookUpProfile("Sherlock", "likes"); 

而且我想返回两个错误:“没有这样的接触”和“没有这样的分类”(我commentated这里我把“回报‘没有这样的联系’”的一部分,但它是这么想的工作.. )。

+0

嗨!所以为了确保,你想要lookUpProfile返回匹配的第一个联系人?或者,在这个特定的例子中,返回“没有这种联系”? – MacPrawn

+0

*“不起作用”*不是有用的问题描述。你的代码目前的问题是什么? –

回答

1

试试这个代码:

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) { 
 
    var contact = contacts.find(function(contact) { 
 
    return contact.firstName === firstName; 
 
    }); 
 

 
    if (!contact) { 
 
    return 'No such contact'; 
 
    } 
 

 
    if (!contact.hasOwnProperty(prop)) { 
 
    return 'No such category'; 
 
    } 
 

 
    return contact[prop]; 
 
} 
 

 

 

 
console.log(lookUpProfile("Sherlock", "likes"));