As i was doing some js exercises in freeCodeCamp i came with this challenge. We have an array of objects representing different people in our contacts lists.
A lookUpProfile function that takes firstName and a property (prop) as arguments has been pre-written for you.
The function should check if firstName is an actual contact's firstName and the given property (prop) is a property of that contact.
If both are true, then return the "value" of that property.
If firstName does not correspond to any contacts then return "No such contact"
If prop does not correspond to any valid properties then return "No such property" And here's my finished code:
//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(myName, myProp){
// Only change code below this line
for (var i = 0; i < contacts.length; i++){
if (contacts[i].firstName === myName){
if (contacts[i].hasOwnProperty(myProp)){
return contacts[i][myProp];
} else {
return "No such property";
}
} else {
return "No such contact";}
}
// Only change code above this line
}
// Change these values to test your function
lookUpProfile("Kristian", "lastName");
But it only returns "no such contact" which from my guess is that the first if is not evaluating to true. However, even the site answer is the same. Is there really anything wrong with the first comparison? What is it?
Aucun commentaire:
Enregistrer un commentaire