Profile look up woes

Tell us what’s happening:
Describe your issue in detail here.

I was certain the below code would work. Not sure why it doesn’t. The logic seems to flow.

for (let i = 0; i < contacts.length; i++) {
if (name == contacts[i].firstName && contacts[i].hasOwnProperty(prop)){
return contacts[i].prop;
}
}
if (name != contacts[i].firstName){
return “No such contact”;
}
else {
return “No such property”
}
// Only change code above this line
}

  **Your code so far**
// Setup
const 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 (let i = 0; i < contacts.length; i++) {
if (name == contacts[i].firstName && contacts[i].hasOwnProperty(prop)){
  return contacts[i].prop;
}
}
if (name != contacts[i].firstName){
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/103.0.0.0 Safari/537.36

Challenge: Profile Lookup

Link to the challenge:

  1. prop is a variable, not a property on the object (the value inside the variable needs to be evaluated and used, i.e. bracket notation).

  2. Your if/else is outside the loop.

  3. What happens when you use return? Does your code always finish looping through all of the objects?


One option. Find the name, then look for the property, if you find the property return it, otherwise return No such property. If you finish the loop and never returned anything, return No such contact

1 Like