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.

1 Like

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?

1 Like