2016-12-15 54 views
-1

這裏是我想達到的目標:的Javascript檔案查詢功能

*函數應該檢查是否是的firstName一個實際接觸的firstName和給定屬性(丙)是接觸的一個屬性。

如果兩者均爲真,則返回該屬性的「值」。

如果的firstName不符合任何接觸,然後返回「沒有這樣的接觸」

如果道具不符合任何有效的屬性則返回「沒有這樣的屬性」 *

我的代碼:

//Setup 
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){ 
// Only change code below this line 
    for (var i = 0; i<prop.length; i++){ 
if(contacts.hasOwnProperty(firstName)=== true && contacts.hasOwnProperty(prop)=== true){ 

    return firstName[i].prop; 
} 
    else if(firstName !==firstName[i].prop) { 
    return "No such contact"; 
    } 
    else if(prop !== "prop"){ 
    return "No such property"; 
    } 
    } 
// Only change code above this line 
} 

// Change these values to test your function 
lookUpProfile("Akira", "likes"); 
+1

什麼是你的問題?你的代碼有問題嗎?如果是,那是什麼?請閱讀[問]。 –

回答

0

您可以使用Array.prototype.find濾除接觸firstName - 見下面的演示:

// Setup 
 
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 found = contacts.find(function(e){ 
 
    return e.firstName === firstName; 
 
    }); 
 
    if(!found) { 
 
    return "No such contact"; 
 
    } else { 
 
    if(prop in found) { 
 
     return found[prop]; 
 
    } else { 
 
     return "No such property"; 
 
    } 
 
    } 
 
} 
 

 
// Change these values to test your function 
 
var result = lookUpProfile("Akira", "likes"); 
 
console.log(result);

+0

這可行,但分配要求我使用hasOwnProperty()來解決問題。 –

+0

我猜這裏找到的prop就足夠了......'hasOwnProperty'也檢查原型鏈中的屬性,而'in'只對可枚舉的有效...... :) – kukkuz