Skip to content
← Back to rules

unicorn/no-array-for-each 制限

An auto-fix is available for this rule.

何ができるか

Array#forEach の使用を禁止し、代わりに for ループを使用することを推奨します。

なぜ悪いのか

for…offorEach メソッドに比べて以下の利点があります:

  • より高速
  • より読みやすい
  • breakreturn を使って早期終了できる

さらに、TypeScript を使用している場合、for…of を使うことで関数境界をまたがないという大きな利点があります。これは、現在のスコープ内で型絞りを行った後にループ内でもその型絞りが正しく機能することを意味します(再び型絞りを行う必要がありません)。また、ループ内で変数が変更された場合にも、その変数が使用されているかどうかを適切に検出できます。

このルールに違反する 誤り なコードの例:

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

このルールに準拠する 正しい コードの例:

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

利用方法

設定ファイルまたは CLI でこのルールを 有効化 するには、次のように記述します:

json
{
  "rules": {
    "unicorn/no-array-for-each": "error"
  }
}
bash
oxlint --deny unicorn/no-array-for-each

参照