Profile Lookup (What's wrong with my Code)

Profile Lookup (What's wrong with my Code)
0

#1

Tell us what’s happening:
What’s wrong with the code below guys. I’m getting stuck with my Own code. Please help me. The below part of the code is not working.

for (var i=0; i < contacts.length; i++){
if (contacts[i].firstName == name ){
if (contacts[i].prop){
return contacts[i][prop];
}
That part of code does not work. Please help.

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 ){
      if (contacts[i].prop){
        return contacts[i][prop];
      }
      
    }
    if (contacts[i].firstName != name){
      return "No such contact";
    }
    if (!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) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36.

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


#2

Your code has several issues, but the line above is one of the first.

When you use dot notation with the .prop above, you are trying to reference an actual property named “prop”. There are no objects with a property named “prop”, so you this if statement will never evaluate to true.

The other overriding issue with your code is that your for loop will only make a single iteration before you return something. Once a return statement is executed, the function immediately exits and does not come back to finish a loop.


#3

Thank you so much for your reply. I’ll try changing my code.