Profile Lookup not working

Profile Lookup not working
0

#1

Tell us what’s happening:

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

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

why this not working
“Kristian”, “lastName” should return “Vos”
“Sherlock”, “likes” should return [“Intriguing Cases”, “Violin”]
“Harry”,“likes” should return an array
Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36.

Link to the challenge:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/profile-lookup


#2

Your for loop is only making a single iteration before you return a value. For example, in the test case lookUpProfile(“Kristian”, “lastName”) your function returns “No such contact”, because in the first iteration where i = 0, contacts[0][“firstName”] is “Akira”, so since your first if statement checks if “Kristian” is equal to “Akria”, it evaluates to false and then the outer else code block executes and returns “No such contact”.

Once a return statement is executed, the function immediately exits and does not continue iterating through any loop.


#3

not understand.can you explain it in easy way.


#4

What part of what I wrote do you not understand?


#5

what the thing i need to change in if statement


#6

Your outer if statement is fine. What you need to think about is where to put “No such contact”.

At what point during your code would you be guaranteed that all objects’ firstName properties have been checked against the name argument passed into the function? Currently, you return “No such contact” if the first object in the contact’s array does not have a firstName matching the name argument. There is only one place it makes sense to return “No such contact” and it is not in the else statement code block where you currently have it.


#7

thank you for the help. now i understand.