Im stuck at this challenge

Tell us what’s happening:
Describe your issue in detail here.
i have re written the code, but why is this not working? it seems like there is a bug with the editor because this code to me should be working fine. please if there is an error i am yet to see please show me, thanks.

  **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 && contacts[i].hasOwnProperty([prop]) == true){
    return contacts[i][prop];
  }else if(!contacts[i].hasOwnProperty([prop])){
    return "No such property";
  }else if(contacts[i].firstName != name){
    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/103.0.0.0 Safari/537.36

Challenge: Profile Lookup

Link to the challenge:

A return statement immediately stops the function, even in the middle of a loop.

What steps did you take to come to this conclusion?

I suggest you add the following line after the function and debug it.

console.log(lookUpProfile("Harry", "lastName"));

I would expect “Potter” to be logged, but instead it logs “No such contact”. That’s weird, because Harry Potter is clearly there as the second person in the list.

1 Like

thank you for the correction, there was no bug im sorry for even thinking that. the problem was that i did not grasp properly how loops and if statement algorithm works, i did not realize that in the my for loop was ended in the middle due to the return statements in the else if blocks, so tyhe loop did not complete making the code to produce false results, so i had to move the “no such contact” return statement out of the for loop and also remove the && statement as it also give false result when the name evaluation fails and the property does not exist. im so happy i have come to understand how all this works. thanks.

thank you, this gave me clue to what the problem is. ive solved it now…the “no such contact” return statement was stopping my for loop in the middle.

1 Like