Cannot figure out the first if statement is not working

Tell us what’s happening:
Describe your issue in detail here.
I cannot figure out why the first if statement is not working which seems fine to me whereas the else if statements are working without any issue

  **Your code so far**

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

Challenge: Profile Lookup

Link to the challenge:

The first looks okay ish, but the second is a problem. What you have happening here is, in the first item in the array, return something in any case. And by doing so, you never look beyond that first record.

The logic might be:

* loop over all the records,
  *if the current record matches,
    * if the current record has this property,
       - return the value of that property.
    * if it doesn't have this property,
      - return the no such property message.
  * if the current doesn't match, keep looping.
* if all the records loop happened *and we didn't return,
  * return the no such contact message.

the second and third statements are working the first statement isn’t working

if you run the code in the lesson the last three objectives are achieved the first three are not satisfied

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