Profile Lookup: return statement outside of for loop?

Profile Lookup: return statement outside of for loop?


Tell us what’s happening:
In this correct solution, I’m wondering why the following code:

return “No such contact”


Your code so far

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 x = 0; x < contacts.length; x++){
    if (contacts[x]["firstName"] === name) {
        if (contacts[x].hasOwnProperty(prop)) {
            return contacts[x][prop];
        } else {
            return "No such property";

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 (X11; CrOS x86_64 10575.58.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36.

Link to the challenge:


Because that’s when has to happen after the loop finishes, once everything has been checked. If there is a contact found, that is inside the loop: one of the conditions is true, the property or “no such property” is returned, the function exits. If there are no contracts that match, nothing inside the loop will return.


Thank you for your response DanCouper! Can you elaborate on why I couldn’t just add the "return ‘No such contact’ " as the else statement paired with the first if statement nested within the for loop ? I guess I’ve been working under the assumption that all if statements required an else statement in order to run properly, but maybe that’s not correct?


Hmm, I might have just answered the first of my 2 questions: is it because the for loop would return “No such contact” immediately after one failed loop to find a matching name in the 0th object?