JavaScript offers various ways to iterate through loops. In this tutorial, we will explore each loop type with examples and discuss their main properties.

Introduction

JavaScript provides many ways to iterate through loops. This tutorial explains each one with a small example and highlights their unique features.

for

The for loop is a commonly used loop in JavaScript. It allows you to iterate over a list of items by specifying the starting point, condition, and increment or decrement.

const list = ['a', 'b', 'c'];
for (let i = 0; i < list.length; i++) {
 console.log(list[i]); //value
 console.log(i); //index
}

You can interrupt a for loop using break, and you can skip to the next iteration using continue.

forEach

The forEach loop was introduced in ES5. It allows you to iterate over the properties of an array.

const list = ['a', 'b', 'c'];
list.forEach((item, index) => {
 console.log(item); //value
 console.log(index); //index
});

//index is optional
list.forEach(item => console.log(item));

Unfortunately, you cannot break out of this loop.

do...while

The do...while loop executes a block of code at least once, and then repeats the loop while a specific condition is true.

const list = ['a', 'b', 'c'];
let i = 0;
do {
 console.log(list[i]); //value
 console.log(i); //index
 i = i + 1;
} while (i < list.length);

You can interrupt a while loop using break, and you can jump to the next iteration using continue.

while

The while loop executes a block of code as long as a specified condition is true.

const list = ['a', 'b', 'c'];
let i = 0;
while (i < list.length) {
 console.log(list[i]); //value
 console.log(i); //index
 i = i + 1;
}

You can interrupt a while loop using break, and you can jump to the next iteration using continue.

The difference with do...while is that do...while always executes its cycle at least once.

for...in

The for...in loop iterates over all the enumerable properties of an object, giving the property names.

for (let property in object) {
 console.log(property); //property name
 console.log(object[property]); //property value
}

for...of

The for...of loop, introduced in ES6, combines the conciseness of forEach with the ability to break.

//iterate over the value
for (const value of ['a', 'b', 'c']) {
 console.log(value); //value
}

//get the index as well, using `entries()`
for (const [index, value] of ['a', 'b', 'c'].entries()) {
 console.log(index); //index
 console.log(value); //value
}

Notice the use of const. This loop creates a new scope in every iteration, so we can safely use const instead of let.

for...in vs for...of

The main difference between for...in and for...of is that for...in iterates over the property names of an object, whereas for...of iterates over the property values.

Tags: JavaScript, Loops, forEach, for, while, do…while, for…in, for…of