Profile Lookup HELPPPPPPPPPPPPPP!

Profile Lookup HELPPPPPPPPPPPPPP!
0

#1

Tell us what’s happening:
GUYS PLEASE HELP>>>> I think my code is okay. Cant see the problem… HELPPPPP!

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
var i=0;
do{
  if (name === contacts[i].firstName){
    if(contacts[i].hasOwnProperty(prop)){
      return contacts[i][prop];
    }else{ 
      return "No such property";
    }
  }else{
    return "No such contact";
  }
  i++;
}while(i<5);
// Only change code above this line
}

// Change these values to test your function
lookUpProfile("Akira", "likes");

Your browser information:


#2

If you walk through your code for the test cases which are failing, you will see what is happening.

For example, when you function calls lookUpProfile(“Kristian”, “lastName”), it should be returning “Vos”, but instead returns “No such property”.

Why? Because in the first iteration of your do while loop, the 1st if statement (seen below) evaluates to false when i = 0, so the outer else block of code returns “No such contact”.

if (name === contacts[i].firstName){

Once a return statement is executed, the function immediately exits and does not come back to finish executing a loop of any kind.

HINT: Think about when you would know for sure that there is no contact with a firstName property equal to name. Once you figure out when that happens, that is when you should return “No such contact”.


#3

Thanks! I did not see that. Felt abit dumb thought but thanks to you I managed to solved it.

I changed the do while loop to for loop. Made it easier to solve.
for ( var i=0; i<4;i++) {
if (name === contacts[i].firstName){
if(contacts[i].hasOwnProperty(prop)){
return contacts[i][prop];
}else{
return “No such property”;
}
}
}
return “No such contact”;
}


#4

do while loop version
var i =0;
do {
if (name === contacts[i].firstName){
if(contacts[i].hasOwnProperty(prop)){
return contacts[i][prop];
}else{
return “No such property”;
}
}
i++;
}while(i<4);
return “No such contact”;
}