You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

遇到eslint禁止迭代器、需改用数组迭代的报错,如何解决?

报错触发原因

  • for...of属于迭代器语法,转译后会强制引入regenerator-runtime依赖,不符合你团队的体积控制规范
  • 显式循环写法不符合规范要求的「优先使用数组迭代方法」规则

改造方案

采用数组内置的every方法完全替换原有循环逻辑,该方法的特性和你原有逻辑完全匹配:只要有一个元素的校验返回false就会立刻终止迭代,整体返回false;所有元素校验通过则返回true。改造后代码如下:

return keys1.every(key => {
  const val1 = object1[key];
  const val2 = object2[key];
  const areObjects = isObject(val1) && isObject(val2);
  const areArrays = Array.isArray(val1) && Array.isArray(val2);
  if (
    (areArrays && !compareArrays(val1, val2)) ||
    (areObjects && !deepEqual(val1, val2)) ||
    (!areObjects && val1 !== val2)
  ) {
    return false;
  }
  return true;
});

改造效果

  • 彻底移除了for...of迭代语法,不会触发regenerator-runtime依赖引入,符合体积控制要求
  • 采用标准数组迭代方法,符合lint规范要求
  • 和原代码逻辑完全一致,没有额外性能损耗,也不会修改原有业务逻辑的返回结果

内容的提问来源于stack exchange,提问作者Giuseppe Fantoni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:54:04