Tell us what’s happening:
It seems like my for loop is not looping through the length of the object. I am kinda confused. Can please anyone explain what is wrong with my code. It works just for the first object and for others it returns “No such contact”. Thank you in advance
Your code so far
// Only change code below this line
for (var x = 0; x < contacts.length; x++){
if (contacts[x].firstName == firstName && contacts[x].hasOwnProperty(prop)){
return contacts[x][prop];
} else if (contacts[x].firstName != firstName){
return "No such contact";
} else if (!contacts[x].hasOwnProperty(prop)){
return "No such property";
}
}
// Only change code above this line
}
//Setup
var contacts = [
{
"firstName": "Harry",
"lastName": "Potter",
"number": "0994372684",
"likes": ["Hogwarts", "Magic", "Hagrid"]
},
{
"firstName": "Akira",
"lastName": "Laine",
"number": "0543236543",
"likes": ["Pizza", "Coding", "Brownie Points"]
},
{
"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 x = 0; x < contacts.length; x++){
if (contacts[x].firstName == firstName && contacts[x].hasOwnProperty(prop)){
return contacts[x][prop];
} else if (contacts[x].firstName != firstName){
return "No such contact";
} else if (!contacts[x].hasOwnProperty(prop)){
return "No such property";
}
}
// Only change code above this line
}
// Change these values to test your function
lookUpProfile("Harry", "likes");
Your browser information:
Your Browser User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36.
Link to the challenge:
https://www.freecodecamp.org/challenges/profile-lookup