? Basic JavaScript: Profile Lookup im confused!

Tell us what’s happening:
I’m watching the solution to this problem, and I’m getting confused about these temporary variables like “i”, “j” etc. In his code he incorporates them, as usual, and i see them in many other functions previously which I felt like I understood.

–attention; below is not my code, I just copied from the video solution where I got lost.–

what is “i” referring to, i assumed it was referring to the name variable?

Your code so far

function lookUpProfile(name, prop){
for (var i = 0; i < contacts.length; i++) {
if(contacts[i].firstName === name) {



// 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

// Only change code above this line

lookUpProfile("Akira", "likes");

Your browser information:

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

Challenge: Profile Lookup

Link to the challenge:

In the for loop, i is defined as a var equal to 0. At this point, it is a Number. More specifically, it is a numerical iterator that is incremented each time the loop continues. It is incremented because i++ is called. i is then incremented each time until the condition is met, or i is no longer less than (<) the length of the contacts array.

You can read more about it here. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Loops_and_iteration#for_statement

contacts[i] is used to access a variable in the array. For example, contacts[0] is the 0th item in the array, or the one corresponding to Akira Laine.

Hope that helps.

so correct me if im wrong, the for loop is only:

for (var i = 0; i < contacts.length; i++)

and this line of code continues to run as long as it remains true.


For example, if contacts.length = 2, var will go through the first loop while it is equal to 0. It will then be incremented to 1 and go through the loop again. When i = 2, the condition checks that 2 (which is i) is not less than 2 (which is contacts.length), so the loop is finished.

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

can you please explain this line in detail, how the computer reads each part? this is my impression of this line;

contacts[i].firstName is using the variable i and iterating through the first name to make sure it matches… but i feel like there is more to breakdown.

I also understand that the “for” portion of a for loop is going to continue to run as long as the code above it remains true

I’m having trouble writing some of this stuff and ive been doing okay through this javascript course so far except for a few things.