For loop problem. i need help

Tell us what’s happening:
why can’t i use a nested if- else statment in a for loop but have to put the return out side the for loop

Your code so far
for (var i=0;i<contacts.length;i++) {
if (contacts[i].firstName === name) {
if (prop in contacts[i]) return {contacts[i][prop];}
else return ‘No such property’;
}
else return ‘No such contact’
}


// 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(name, prop){
// Only change code below this line
for (var i=0;i<contacts.length;i++){
if (contacts[i].firstName === name){
    if (prop in contacts[i]) return contacts[i][prop];
    else return 'No such property';
}else return 'No such contact'
}
// Only change code above this line

}
lookUpProfile("Akira", "likes");

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 6.1; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 OPR/68.0.3618.165.

Challenge: Profile Lookup

Link to the challenge:

Your logic is correct.
I think you messed up with brackets before return statement

I remember I had the same issue . The position of your else return "No such contact" is the problem. You don’t need to write else either.

If you have “Harry” as your name, your loop is going through and checking through the first object for firstname ===“Harry”. The first object is Akira. So it stops the loop there and says “no such contact” because Akira !== Harry.

What you want to do is return no such contact after the for loop has gone through all of the objects.

Does that make sense?

Thank you so much. You really helped me out

1 Like