Basic JavaScript - Profile Lookup - Question 104

Tell us what’s happening:

Describe your issue in detail here.

I’m aware that the solution requires us to use a for loop, but I really wanted to know why isn’t this code working at all!

Thanks :smiley:

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

if (contacts["firstName"] == name && contacts.hasOwnProperty(prop) == true) {
  return contacts[prop];
} else if(name != contacts["firstName"]) {
  return "No such contact"
} else if(contacts.hasOwnProperty(prop) == false){
  return "No such property"
}
}
  // Only change code above this line


console.log(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/119.0.0.0 Safari/537.36

Challenge Information:

Basic JavaScript - Profile Lookup

Hi there and welcome to our community!

The issue is that contacts is an array, so contacts["firstName"] will return undefined, as it’s not accessing any particular object within the array.
This is why you need to loop through the array, to access each individual object inside it.

When you do create a loop to iterate through the array, you’ll also need to consider that…

else if(name != contacts["firstName"]) {
  return "No such contact"
}

…should only return if all of the objects within contacts do not match, not return as soon as one unmatching contact is found. Similarly, with the “No such property” return statement too.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.