Profile Lookup what is wrong with my code

Tell us what’s happening:
what is wrong with my code

Your code so far


//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 && contacts[i].hasOwnProperty(prop)){
      return contacts[i][prop];
    }
    else if(name!==contacts[i].firstName){
      return "No such contact";
    }
    else if(prop!==contacts[i].hasOwnProperty(prop)){
      return "No such property";
    }
}
// Only change code above this line
}

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

Your browser information:

User Agent is: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36.

Link to the challenge:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/profile-lookup

You have all three return statements inside the loop, it means that when you have i set to 0 something will be returned and you will never go to i set to 1

You need to change your code so to let it to evaluate all elements of the array. For example, what happens with lookUpProfile("Kristian", "number")?

Inside the loop, for i set to 0, we have contacts[i].firstName that is "Akita", so the first statement is false and is not executed, but the second statement is true, so you will get "No such contact" even if it is not true.

1 Like

thnx again…it really helped me.