Help required for error detection in code

Can somebody point out my mistake over here for this challenge?


// Setup
var 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(var i = 0; i < contacts.length; i++)
{
  if(contacts[i].hasOwnProperty(name) && contacts[i].hasOwnProperty(prop))
  {
      return contacts[i][prop]; 
 //I think it's somewhere here because the other 2 test cases ran successfully
  }
  else if(contacts[i].hasOwnProperty(name)==false)
  {
      return "No such contact";
  }
  else if(contacts[i].hasOwnProperty(prop)==false)
  {
      return "No such property";
  }
// Only change code above this line
}
}
lookUpProfile("Akira", "likes");

User Agent is: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36

Challenge: Profile Lookup

Link to the challenge:

Okay, so first look at the sample parameters. The name parameter in the sample call contains "Akira" - is that a property name, or a value contained within a particular property? The lesson spec tells you.

Second, look at the logic of your three if branches - does that make sense? Try thinking through the logic step by step, without code, and write it out in your own words.

There should be two different if statements, likely one inside the other. The first should run on all records until a particular condition is met. At that point, with a match, a second if returns one of two possible options.

The third and final return option only applies in the event that all records failed to match that first if condition, after the for loop completes.

1 Like

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