Basic JavaScript - Profile Lookup

Tell us what’s happening:

Describe your issue in detail here.
I think I have done whatever I could but still the code is not getting approved. Please suggest changes.

Your code so far

// Setup
const 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"],
  },
];


  // Only change code below this line
  function lookUpProfile(name, prop) {
    for(var i=0;i<contacts.length;i++)
    {
      if(contacts[i]['firstName'] === name)
      {
        if(contacts[i].hasOwnProperty(prop))
        {
          return contacts[i][prop];
        }else{
          return "No such property";
        }
     }
     return "No such contact";
  }
  }
  // Only change code above this line


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/119.0.0.0 Safari/537.36 Edg/119.0.0.0

Challenge Information:

Basic JavaScript - Profile Lookup

Return statements immediately stop the function call

1 Like

Hello, I moved the return down between the last two brackets and it passed.

The way you have formatted the code (or not formatted it) kind of makes it look like the return is outside the loop body (unless you look more carefully).

It is much easier to see that it is inside the loop if you format the code properly.

function lookUpProfile(name, prop) {
  for (var i = 0; i < contacts.length; i++) {
    if (contacts[i]["firstName"] === name) {
      if (contacts[i].hasOwnProperty(prop)) {
        return contacts[i][prop];
      } else {
        return "No such property";
      }
    }
    return "No such contact";
  }
}