Profile Lookup - Is a return statement INSIDE the for-loop also a solution?

Tell us what’s happening:
[Warning // Spoilers to the following quiz: Profile Lookup]

I’m not sure why the following can’t be the solution too. I placed my return "No such contact"; inside if-statement with the else-statement. I logged it in my browser and it returns the answer just as same the given solution. The current solution’s return statement is placed outside the for-loop. From what I’ve read, when you use a return statement in a function it will exit out of the function. i.e. the for-loop should be exit out too.

Let me know if I’m wrong, or why this isn’t the solution to the following quiz! :smiley:

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].hasOwnProperty(prop)) {
        return contacts[i][prop];
      } else {
        return "No such property";
      }
    } else {
      return "No such contact";
    }
  }
// 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/75.0.3770.142 Safari/537.36.

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

It works because you are using Akira in the test, try using a function call with one of the other persons in the contacts

1 Like

Oh, I see. :open_mouth: Because when the first person on the contacts lists is not true, my else-statement gets into work. :sweat: Awkward.

because when both condition met , it RETURN name & prop value & exit there & won’t reach your other return block.