The for...of loop is my favorite way to loop in JavaScript.
It combines the conciseness of forEach loops with the ability to break.
The syntax is this:
const list = ['a', 'b', 'c']
for (const item of list) {
console.log(item)
}
You can break at any point in time using break:
const list = ['a', 'b', 'c']
for (const item of list) {
console.log(item)
if (item === 'b') break
}
You can skip an iteration using continue:
const list = ['a', 'b', 'c']
for (const item of list) {
if (item === 'b') continue
console.log(item)
}
You can get the index of an iteration using entries():
const list = ['a', 'b', 'c']
for (const [index, value] of list.entries()) {
console.log(index) //index
console.log(value) //value
}
Notice the use of const. The for..of loop creates a new scope in every iteration, so we can safely use that instead of let.