2017-03-02 39 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"));