Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript JavaScript Loops, Arrays and Objects Tracking Multiple Items with Arrays Iterating through an Array

Tom Byers
Tom Byers
13,005 Points

Why does this for loop not iterate array items in order?

Challenge: Use a for or while loop to iterate through the values in the temperatures array from the first item -- 100 -- to the last -- 10. Inside the loop, log the current array value to the console.

script.js
var temperatures = [100,90,99,80,70,65,30,10];

for (var i = 0; i < temperatures.length; i +=1) {
  console.log(i);
}
index.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JavaScript Loops</title>
</head>
<body>
<script src="script.js"></script>
</body>
</html>

3 Answers

Grace Kelly
Grace Kelly
33,990 Points

Hi Tom what you are logging out is not the values in the temperatures array but the value i. This value is incremented by 1 through each iteration so you are getting the following output:

0
1
2
3
4
5
6
7

This is not what we want. What we need to do is log each value of the temperatures array (100,90,99 etc). We do this by passing the i value into index of the temperatures array to get the value that corresponds to the i value's index, like so:

for (var i = 0; i < temperatures.length; i +=1) {
  console.log(temperatures[i]); //pass the i value into the temperatures array index
}

This will then give us the following output:

100 //temperatures[0]
90 //temperatures[1]
99 //temperatures[2]
etc

Hope that helps!!

Gunhoo Yoon
Gunhoo Yoon
5,027 Points

i is simply a number that keep increases until it reaches length of termperatures array. It doesn't automatically pick up item from array. All you get by running your code is number 0..7

var temperatures = [100,90,99,80,70,65,30,10];

for (var i = 0; i < temperatures.length; i +=1) {
  // Use i as index of temperatures
  console.log(temperatures[i])
}
Tom Byers
Tom Byers
13,005 Points

Makes sense. Legend, thanks.