-
Notifications
You must be signed in to change notification settings - Fork 2
Challenge Profile Lookup
🚩 Remember to use Read-Search-Ask
if you get stuck. Try to pair program 👥 and write your own code 📝
We have an array of objects representing different people in our contacts lists.
A lookUpProfile()
function that takes firstName and a property (prop) as arguments has been pre-written for you.
The function should check if firstName is an actual contact's firstName and the given property (prop) is a property of that contact.
If both are true, then return the value of that property.
If firstName does not correspond to any contacts then return No such contact
.
If prop does not correspond to any valid properties then return No such property
.
- Change the code below
// Only change code below this line
and up to// Only change code above this line
. - Ensure that you are editing the inside of the
lookUpProfile()
function.- This function includes two parameters, firstName and prop.
- The function should look through the contacts list for the given firstName parameter.
- If there is a match found, the function should then look for the given prop parameter.
- If both firstName and the associated prop are found, you should return the value of the prop.
- If firstName is found and no associated prop is found, you should return
No such property
.
- If firstName isn't found anywhere, you should return
No such contact
.
- Challenge: Accessing Objects Properties with Bracket Notation
- Challenge: Iterate with JavaScript For Loops
Use a for
loop to cycle through the contacts list.
try to solve the problem now
Use a nested if
statement to first check if the firstName matches, and then checks if
the prop matches.
try to solve the problem now
Leave your return "No such contact"
out of the for
loop as a final catch-all.
try to solve the problem now
Solution ahead!
for (var x = 0; x < contacts.length; x++){
if (contacts[x].firstName === firstName) {
if (contacts[x].hasOwnProperty(prop)) {
return contacts[x][prop];
} else {
return "No such property";
}
}
}
return "No such contact";
- The
for
loop runs, starting at the first object in the contacts list. - If the firstName parameter passed into the function matches the value of the
"firstName"
key in the first object, theif
statement passes. - Then, we use
.hasOwnProperty()
method (checks if there's a given property and returns a boolean) with prop as an argument. If it's true, the value of prop is returned.- If the second
if
statement fails,No such property
is returned.
- If the second
- If the first
if
statement fails, thefor
loop continues on to the next object in the contacts list. - If the firstName parameter isn't matched by the final contacts object, the
for
loop exits andNo such contact
is returned.
Example Run
-
lookUpProfile("Akira","likes");
runs. -
"Akira"
is matched to the"firstName"
key in the first object, so theif
statement returns true. -
"likes"
is found within the first object, so the secondif
statement returns true. - The value of
"likes"
is returned -"Pizza", "Coding", "Brownie Points"
.
If you found this page useful, you may say thanks to the contributors by copying and pasting the following line in the main chat:
Thanks @leftynaut for your help with Checkpoint: Profile Lookup
⚠️ DO NOT add solutions that are similar to any existing solutions. If you think it is similar but better, then try to merge (or replace) the existing similar solution.- Add an explanation of your solution.
- Categorize the solution in one of the following categories — Basic, Intermediate and Advanced. 🚥
- Please add your username only if you have added any relevant main contents. (:warning: DO NOT remove any existing usernames)
See 👉
Wiki Challenge Solution Template
for reference.
Learn to code and help nonprofits. Join our open source community in 15 seconds at http://freecodecamp.com
Follow our Medium blog
Follow Quincy on Quora
Follow us on Twitter
Like us on Facebook
And be sure to click the "Star" button in the upper right of this page.
New to Free Code Camp?
JS Concepts
JS Language Reference
- arguments
- Array.prototype.filter
- Array.prototype.indexOf
- Array.prototype.map
- Array.prototype.pop
- Array.prototype.push
- Array.prototype.shift
- Array.prototype.slice
- Array.prototype.some
- Array.prototype.toString
- Boolean
- for loop
- for..in loop
- for..of loop
- String.prototype.split
- String.prototype.toLowerCase
- String.prototype.toUpperCase
- undefined
Other Links