Skip to content

unicorn/no-array-for-each Restriction

🚧 An auto-fix is still under development.

What it does

Forbids the use of Array#forEach in favor of a for loop.

Why is this bad?

Benefits of for…of statement over the forEach method can include:

  • Faster
  • Better readability
  • Ability to exit early with break or return

Additionally, using for…of has great benefits if you are using TypeScript, because it does not cause a function boundary to be crossed. This means that type-narrowing earlier on in the current scope will work properly while inside of the loop (without having to re-type-narrow). Furthermore, any mutated variables inside of the loop will picked up on for the purposes of determining if a variable is being used.

Example

Examples of incorrect code for this rule:

javascript
const foo = [1, 2, 3];
foo.forEach((element) => {
  /* ... */
});

Examples of correct code for this rule:

javascript
const foo = [1, 2, 3];
for (const element of foo) {
  /* ... */
}

References

Released under the MIT License.