Profile Lookup, What is wrong with my code

Tell us what’s happening:

my code only returns “No such contact” and "No such property " output, it doesn’t return an array.

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 && contacts[i].hasOwnProperty(prop)){
    return contacts[i][prop];
} else if(name !== contacts[i]["firstName"]){
    return "No such contact";
} else if (!contacts[i].hasOwnProperty(prop) || name === contacts[i]["firstname"]){
    return "No such property";
}
}
// Only change code above this line
}

var testOne = lookUpProfile("Harry", "likes");
console.log(testOne)

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36.

Challenge: Profile Lookup

Link to the challenge:

When a return statement is executed, the function immediately exits returning the value specified. You are returning a value inside the for loop, so your function will exit during the first iteration of the array and then exit without further iteration of the array. You need to slightly rethink your algorithm and determine when and where you should be returning certain values.

1 Like

Thank you for the clarification and also reaching out swiftly to help me with my problem. I am really grateful Randell Dawson, thanks again for your help.