Profile Lookup Exercise - Basic Javascript

Just one more thing. Could I have done it without using Nested if?
If i could go on with my style of code and evaluate the two statements in one if? Will i get the desired output?

Here’s my new code. I am almost there. Every check is passed except for one:

function lookUpProfile(name, prop){
// Only change code below this line

for (var i = 0; i < contacts.length; i++) {

if (name == contacts[i].firstName && contacts[i].hasOwnProperty(prop)) {
    return contacts[i][prop];
}

else if (contacts[i].hasOwnProperty(prop) !== true) {
    return "No such property";
}


}

return "No such contact";
// Only change code above this line
}

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

I am getting this error: “Bob”, “potato” should return “No such contact”

That is correct, because your first if statement evaluates to false, so your else if statement is evaluated next. Since prop is “potato” and the first contact (contacts[0]) does not have a “potato” property, you return “No such property” and the function exits.

EDIT: I would suggest a nested if like the one I showed in a previous reply. The outer if would make sure the firstName property matches name. The inner if would check if the property exists for that object.

Ok. So how do i fix it?

Ok, so basically the nested if is inevitable. Thanks.

Yes, that’s true. Well I have to admit. This was the toughest challenge in Basic Javascript.