I dont what wrong in my code only single test is not statisfying but other related to it gets done

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-1;i++){
   if(name==contacts[i]["firstName"] && contacts[i].hasOwnProperty(prop)==true){
return contacts[i][prop];   
   }else if(name==contacts[i].firstName && contacts[i].hasOwnProperty(prop)==false){
       return "No such property";
   }
}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/89.0.4389.128 Safari/537.36.

Challenge: Profile Lookup

Link to the challenge:

Hello @ankitghag16, remember that in a for loop the body will execute only if the condition evaluate true.

Consider this example:

var a = ['a','b','c'];

for(let i =0; i < a.length -1; i++) {
  console.log(a[i])
}

// "a" , "b"

As you can see, c is missing as when the loop updates and i reaches 2 the condition is false: 2 < 2 is false.

Hope it helps.

Thank you .

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