Need help regarding profile lookup

Need help regarding profile lookup
0

#1

hi, i am doing the profile lookup challenge, can somebody point out the problem in the code.
here is my code:

function lookUpProfile(name, prop){
// Only change code below this line
for(var i=0; i< contacts.length; i++)
{
if(name==contacts[i].firstName)
{ // check for the first name
if(contacts[i].hasOwnProperty(prop))
{ //checks for the given prop
return contacts[i][prop];
}else
{ // if not found
return ‘No such property’;
}
}else
{ //no name exists
return “No such contact”;
}
}
// Only change code above this line
}

// Change these values to test your function
console.log(lookUpProfile(“Kristian”, “lastName”));


Profile Lookup - stuck here
#2

Can you post your code here as well?


#3

Hey @adarshk010,
Use the “Ask for help” button on challenge page whenever you need help with any of the challenges. It formats your code properly and also gives link to your challenge.


#4

here is the function, sry
‘’’
function lookUpProfile(name, prop){
// Only change code below this line
for(var i=0; i< contacts.length; i++)
{
if(name==contacts[i].firstName)
{ // check for the first name
if(contacts[i].hasOwnProperty(prop))
{ //checks for the given prop
return contacts[i][prop];
}else
{ // if not found
return ‘No such property’;
}
}else
{ //no name exists
return “No such contact”;
}
}
// Only change code above this line
}

// Change these values to test your function
console.log(lookUpProfile(“Kristian”, “lastName”));


#5

Tell us what’s happening:
only 3 errors remain , but i can’t seem to find any more error. please need help

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)
  {                                    // check for the first name
     if(contacts[i].hasOwnProperty(prop))
     {                                 //checks for the given prop
         return contacts[i][prop];
     }else
     {                                 // if not found
        return 'No such property';
     }
  }else
    {                                    //no name exists  
      return "No such contact"; 
     } 
}
// Only change code above this line
}

// Change these values to test your function
console.log(lookUpProfile("Kristian", "lastName"));

Your browser information:

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

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


#6

Look at your logic.

  • Start a loop.
  • At the first record, if a contact is found, return that contact.
  • AT THAT SAME FIRST RECORD, if the array element doesn’t contain that property, return an error.
  • AT THAT SAME FIRST RECORD AGAIN, if it doesn’t match, return no match.

You never actually do the loop.


#7

Get rid of this else statement.

You will have to use this return after for loop in tour function.
That should do it.
Does that help?


#8

UPDATE: never mind that. :slight_smile:

You need to understand the difference between dot and bracket notation.

contacts[i].firstName JS will treat firstName as a string and will look for a property called “firstName” (which, in this case, doesn’t exist).
contacts[i][firstName] whereas, when bracket notation is used, JS treats firstName as a variable and will use whatever that variable is referencing.


#9

Well, it looks like the OP is looking up based on first name, and returning a given object’s property when that first name has matched. Were the OP using contacts[i].prop rather than contacts[i][prop], I’d be worried.


#10

Each object does have a firstName property, but it may or may not have the prop valued property.