Basic JavaScript - Profile Lookup

Tell us what’s happening:

Why is my function worked when I move the return statement out of the for loop instead of writing in the else statement?

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 (name === contacts[i].firstName) {
            console.log("This if statement works");
            switch(prop) {
                case "lastName":
                    return contacts[i].lastName;
                    break;
                case "number":
                    return contacts[i].number;
                    break;
                case "likes":
                    return contacts[i].likes;
                    break;
                default:
                    return "No such property";
            }
        }
        else {
            return "No such contact";
        }
    }
    //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/120.0.0.0 Safari/537.36 Edg/120.0.0.0

Challenge Information:

Basic JavaScript - Profile Lookup

Use console.log() as above to see what’s happening with your variables, it will help you follow what the loop is doing.

Generally if you have “else return” it breaks the loop after the 1st iteration or too early

1 Like