Basic JavaScript - Profile Lookup

Tell us what’s happening:

Describe your issue in detail here.
I am not getting What I am doing wrong here?

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 (contacts[i].firstName === name && contacts[i].hasOwnProperty(prop)) {
      return contacts[i][prop];
    } else if (contacts[i].firstName !== name) {
      return "No such contact";
    } else if (!contacts[i].hasOwnProperty(prop)) {
      return "No such prop";
    }
  }

  // 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/118.0.0.0 Safari/537.36

Challenge Information:

Basic JavaScript - Profile Lookup

It returns “No such contact” as soon as it finds a contact that doesn’t match the provided name. This means it doesn’t check all contacts before making that determination.

Hi @zaklina, Under your for loop you shouldn’t be using the elseif() in this condition. You can use nested if else statement to solve this problem otherwise your logic is correct. Hope you find it helpful✌️

I am still not getting it what I am doing wrong? I know it must be a basic thing that I am missing here.

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

console.log(lookUpProfile("Akira", "likes"));
console.log(lookUpProfile("Kristian", "lastName"))

put return “No such contact” autside of the loop (where your comment is) ,your code will correctly return “No such contact” only if none of the contacts match the provided name.Hope this helps…

1 Like

Thanks it is working but I need to be good at basics to understand how it works.

1 Like

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