JavaScript eslint 错误 - 不要在循环下创建函数

JavaScript eslint error - Don't make functions under loop

我正在使用 cucumber framework 在 JavaScript (NodeJS) 中编写自动化测试脚本。我的步骤定义之一需要调用 API 并读取 JSON 数据。

在下面的代码中,ptRecords 是 JSON 响应块,其中我正在读取一个名为 jsonElement1jsonElement2 的元素,这两个元素重复多次,因此我正在读取所有事件..

我的下面代码工作正常,但是当我 运行 lint 时,它抛出 lint 错误,说不要在循环语句下创建函数。

能否请您告知如何调用这些外部循环并获得响应..

我需要这样做直到 K 循环结束

for (let k = 0; k < 5; k += 1) {
  ptRecords.forEach((jsonArrObj1) => {
    const jsonArrObjTagValue = objectHelpers.walk(jsonArrObj1.jsonElement1);
    acc.push(jsonArrObjTagValue1);
  });

  ptRecords.forEach((jsonArrObj2) => {
    const jsonArrObjTagValue = objectHelpers.walk(jsonArrObj2.jsonElement2);
    acc.push(jsonArrObjTagValue2);
  });
};

您或许可以更改此设置:

for (let k = 0; k < 5; k += 1) {
  // ...
}

进入:

[0, 1, 2, 3, 4].forEach(k => {
  // ...
});

或者您可以使用一些快捷方式来自动生成数组:

[...Array(5).keys()].forEach(k => {
  // ...
});

或:

[...Array(5)].forEach((v, k) => {
  // ...
});

或者如果您知道自己在做什么,有时您最好的选择是禁用特定规则:

// eslint-disable-line no-loop-func