2018-09-30 23:01:58 +01:00
---
id: 5675e877dbd60be8ad28edc6
title: Iterate Through an Array with a For Loop
challengeType: 1
2019-02-14 12:24:02 -05:00
videoUrl: 'https://scrimba.com/c/caeR3HB'
2019-07-31 11:32:23 -07:00
forumTopicId: 18216
2018-09-30 23:01:58 +01:00
---
2020-11-27 19:02:05 +01:00
# --description--
A common task in JavaScript is to iterate through the contents of an array. One way to do that is with a `for` loop. This code will output each element of the array `arr` to the console:
2019-05-17 06:20:30 -07:00
```js
2019-12-02 15:42:32 -08:00
var arr = [10, 9, 8, 7, 6];
2019-05-17 06:20:30 -07:00
for (var i = 0; i < arr.length ; i + + ) {
console.log(arr[i]);
}
```
2020-11-27 19:02:05 +01:00
Remember that arrays have zero-based indexing, which means the last index of the array is `length - 1` . Our condition for this loop is `i < arr.length` , which stops the loop when `i` is equal to `length` . In this case the last iteration is `i === 4` i.e. when `i` becomes equal to `arr.length` and outputs `6` to the console.
# --instructions--
Declare and initialize a variable `total` to `0` . Use a `for` loop to add the value of each element of the `myArr` array to `total` .
# --hints--
`total` should be declared and initialized to 0.
```js
assert(code.match(/(var|let|const)\s*?total\s*=\s*0.*?;?/));
2018-09-30 23:01:58 +01:00
```
2020-11-27 19:02:05 +01:00
`total` should equal 20.
```js
assert(total === 20);
```
2018-09-30 23:01:58 +01:00
2020-11-27 19:02:05 +01:00
You should use a `for` loop to iterate through `myArr` .
2018-09-30 23:01:58 +01:00
```js
2020-11-27 19:02:05 +01:00
assert(/for\s*\(/g.test(code) && /myArr\s*\[/g.test(code));
```
2018-09-30 23:01:58 +01:00
2020-11-27 19:02:05 +01:00
You should not attempt to directly assign the value 20 to `total` .
2018-09-30 23:01:58 +01:00
2020-11-27 19:02:05 +01:00
```js
assert(!__helpers.removeWhiteSpace(code).match(/total[=+-]0*[1-9]+/gm));
2018-09-30 23:01:58 +01:00
```
2020-11-27 19:02:05 +01:00
# --seed--
2018-09-30 23:01:58 +01:00
2020-11-27 19:02:05 +01:00
## --after-user-code--
2018-09-30 23:01:58 +01:00
```js
2018-10-20 21:02:47 +03:00
(function(){if(typeof total !== 'undefined') { return "total = " + total; } else { return "total is undefined";}})()
2018-09-30 23:01:58 +01:00
```
2020-11-27 19:02:05 +01:00
## --seed-contents--
2018-09-30 23:01:58 +01:00
2020-11-27 19:02:05 +01:00
```js
// Setup
var myArr = [ 2, 3, 4, 5, 6];
2018-09-30 23:01:58 +01:00
2020-11-27 19:02:05 +01:00
// Only change code below this line
```
# --solutions--
2018-09-30 23:01:58 +01:00
```js
var myArr = [ 2, 3, 4, 5, 6];
var total = 0;
for (var i = 0; i < myArr.length ; i + + ) {
total += myArr[i];
}
```