Need help explaining what my code is doing wrong

*Tell us what’s happening:
Hi, I’ve written my code. I don’t really get why it’s not working. Can someone highlight the issues thanks?

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 x = 0; x < contacts.length; x++){
if(contacts[x].firstName === name && contacts[x].hasOwnProperty(prop)){
 return contacts[x][prop]
}else if(contacts[x].firstName !== name){
 return "No such contact"
}else{
return "No such Property"
}
}
// 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/85.0.4183.121 Safari/537.36.

Challenge: Profile Lookup

Link to the challenge:

Recall that when a return statement is executed, the function is exited. No further code in the function will run. Your code always returns in the first iteration of the loop, so only one value of contacts is checked.

1 Like