Trouble with Profile lookup function

Tell us what’s happening:
Tried to use a for loop to parse through the objects. My if else statements only work for the negatives (the else statements) but none of the ‘positive’/true statements … anyone know why my current code doesn’t work?

  **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"],
},
];

function lookUpProfile(name, prop) {
// Only change code below this line
for (let 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";
    }
  } else {
    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/102.0.0.0 Safari/537.36

Challenge: Profile Lookup

Link to the challenge:

I have tried switching between . and for prop - but it doesnt make a difference

When can you say that none of the contacts match?

1 Like

When the ‘name’ parameter in lookUpProfile(name, prop) does not match a firstName value in the contacts array

The very first time there you find a name that doesn’t match you want to stop looking and declare that no such contact exists?

1 Like

Would the for loop not parse through until the conditions for the loop have been met?

As soon as a return statement is executed, the function is exited immediately.