Profile Lookup: Not sure whats wrong

Tell us what’s happening:
I’m not sure why my code isn’t working. The part where if both are true, display the value of the property.
Thanks!

Your code so far

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];
    }
    if(name != contacts[i]["firstName"]){
      return "No such contact";
    }
    if(name == contacts[i]["firstName"] && prop != contacts[i][prop]){
      return "No such property";
    }
  }
}

//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(name == contacts[i]["firstName"] && contacts[i].hasOwnProperty(prop)){
        return contacts[i][prop];
    }
    if(name != contacts[i]["firstName"]){
      return "No such contact";
    }
    if(name == contacts[i]["firstName"] && prop != contacts[i][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 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0.

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

The problem is the second if, where if the first element of the array hasn’t the contact you are looking for, it returns “No such contact”, breaking the loop and no looking in the others arrays, just in the first.
Good luck!

1 Like

Oooooh I see!
Thank you very much!

1 Like