Profile lookup javascript 2020

Tell us what’s happening:
cant pass the test saw the video it says:

lookUpProfile("Kristian", "lastName")

should return

"Vos"
lookUpProfile("Sherlock", "likes")

should return

["Intriguing Cases", "Violin"]
lookUpProfile("Harry", "likes")

should return an array

lookUpProfile("Akira", "address")

should return “No such property”

Your code so far

       function lookUpProfile(name, prop){
for (var i= 0;i < contacts.length;i++) {
    if(contacts[i].firstname === name) {
    if(prop in contacts[i]) {
 return contacts [i][prop];
    }else return  "No such property" ;
}
    }
return "No such contact" ;
}
 lookUpProfile("Sherlock", "likes");

// 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){
for (var i= 0;i < contacts.length;i++) {
   if(contacts[i].firstname === name) {
   if(prop in contacts[i]) {
return contacts [i][prop];
   }else return  "No such property" ;
}
   }
return "No such contact" ;
}
lookUpProfile("Sherlock", "likes");


Your browser information:

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

Challenge: Profile Lookup

Link to the challenge:

What’s the specific question?

function lookUpProfile(name, prop) {
  for (var i= 0; i < contacts.length; i++) {
    if (contacts[i].firstname === name) {
      if (prop in contacts[i]) {
        return contacts [i][prop];
      } else {
        return  "No such property" ;
      }
    }
  }
return "No such contact" ;
}

I have formatted your code to make it more human readable.

prop in contacts[i] - I don’t think this does what you want. I’d look up hasOwnProperty.

1 Like

Ok I’ll check bro let’s see if I pass the text

this doesnt work it says SyntaxError: unknown: ‘return’ outside of function

if you get that error you have the return statement aftwr the closing parenthesis of the function

you didn’t need to change that

what’s your code now?

please write the solution

On freeCodeCamp, we have a strict policy of never just giving people the solution code. But we are happy to help you fix your code so that it works correctly.

What is your current code?

1 Like

the current code:

function lookUpProfile(name, prop){

for (var i= 0;i < contacts.length;i++) {
if(contacts[i].firstname === name) {
if(prop in contacts[i]) {
return contacts [i][prop] ;
}
}else {
return "No such property" ;
}
return "No such contact" ;
}

}
lookUpProfile("Sherlock","address");

I’ve edited your post for readability. When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make it easier to read.

You can also use the “preformatted text” tool in the editor (</>) to add backticks around text.

See this post to find the backtick on your keyboard.
Note: Backticks (`) are not single quotes (’).

function lookUpProfile(name, prop) {
  for (var i = 0; i < contacts.length; i++) {
    if (contacts[i].firstname === name) {
      if (prop in contacts[i]) { // I still do not think this works like you think it does. I'd look up the hasOwnProperty method
        return contacts [i][prop];
      }
    } else {
      return "No such property";
    }
    return "No such contact"; // Why did you move this inside of here? Now you will return "No such contact" on the first non-matching name
  }
}
lookUpProfile("Sherlock","address");

I formatted your code so that it is easier for others to read it and be able to help you. I added some comments.