Why is this code not working as it is supposed to ? when I run it without the else statement it is able to lookup profile but with else it cannot?

Tell us what’s happening:
Describe your issue in detail here.

  **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"] ) {
          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
}

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

Challenge: Profile Lookup

Link to the challenge:

your code else return “No such contact” is still inside the for loops, that means at the first loop (when i == 0), if firstName value doesn’t match with name, the function will return value “No such contact” without looping when i==1 or i==2,…

What you want here is that the code must be outside the for loops, so that when all loops have been done and no matching value, the function will execute the next code.

You can understand in an alternative way that, the return keyword will return the value outside the function and STOP the function.

2 Likes

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