Skip to content
← Back to rules

unicorn/no-array-for-each 限制

An auto-fix is available for this rule.

它做了什么

禁止使用 Array#forEach,推荐使用 for 循环。

为什么这是不好的?

forEach 方法相比,for…of 语句 的优势可能包括:

  • 执行速度更快
  • 可读性更好
  • 可以使用 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

参考资料