Problems with my logic I guess... HELP!

We have an array of objects representing different people in our contacts lists.

A lookUpProfile function that takes name and a property ( prop ) as arguments has been pre-written for you.

The function should check if name is an actual contact’s firstName and the given property ( prop ) is a property of that contact.

If both are true, then return the “value” of that property.

If name does not correspond to any contacts then return the string No such contact .

If prop does not correspond to any valid properties of a contact found to match name then return the string No such property .

  **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 contacts[i][prop] || "No such property";
  }else {
    return 'No such contact'
// Only change code above this line

lookUpProfile("Akira", "likes");

**Challenge:**  Profile Lookup

**Link to the challenge:**

Hey there and welcome to the forums!! :wave: :slightly_smiling_face:

First thing that sticks out is your if/else block. Remember that a return exits a function, so what happens if the first contact doesn’t have the right name? Currently your function would return “No such contact” without checking the rest of the names.
I’d look at putting your return 'No such contact' somewhere else.

Spoiler Warning

Perhaps after the for loop? Then you know every contact has been checked right?

1 Like

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