Basic JavaScript - Profile Lookup

Tell us what’s happening:
Describe your issue in detail here.
I’m kinda lost on what to do next or if I’m doing it right at all. Right now it just returns Akira. And I think i’m on the right track on how to get the specific contacts prop, but I feel like I’m missing something or doing it all wrong.

Do y’all have any hints or any concepts I should study more so that I can solve this problem?
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){
   return name;
 } else if (contacts[i]["firstName"] !== name){
   return "No such contact";
 } else if (name.hasOwnProperty(prop)){
   return name[prop];

 } 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/115.0.0.0 Safari/537.36

Challenge: Basic JavaScript - Profile Lookup

Link to the challenge:

Here’s my new code. It seems this is more on the right track but now it returns “No such property” so I’m guessing I’m missing something or doing it wrong there.

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

To display your code in here you need to wrap it in triple back ticks. On a line by itself type three back ticks. Then on the first line below the three back ticks paste in your code. Then below your code on a new line type three more back ticks. The back tick on my keyboard is in the upper left just above the Tab key and below the Esc key. You may also be able to use Ctrl+e to automatically give you the triple back ticks while you are typing in the this editor and the cursor is on a line by itself. Alternatively, with the cursor on a line by itself, you can use the </> button above the editor to add the triple back ticks.

1 Like

I’m not sure that name can be both a string and an object.

1 Like

This is inside your for loop. So the first time this is true then your function will return “No such contact”. Do you really know that there is no such contact if you haven’t checked all the other contacts yet?

1 Like

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