JavaScript eslint错误 – 不要使循环中的函数

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

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

我的下面的代码工作正常,但是当我运行lint时,它会引发lint错误,说不要在循环语句下生成函数。

你可以请build议如何调用这些外部循环,并得到回应..

我需要这样做,直到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