避免使用循环react“no-unused-vars”错误

IT技术 javascript reactjs loops eslint
2021-05-14 06:37:34

我正在根据另一个数组中的项目数量生成一个对象数组。很简单,我只是在执行以下操作,效果很好。

for(let i in myArray){
  newArray.push({
    var1: someFunctionValue(),
    var2: anotherFunctionValue()
  });
}

然而,因为没有使用“i”,React(ESLint?)给了我警告“i”被分配了一个值但从未使用过 - no-unused-vars。

有没有更好的方法我应该这样做?我真的看不出有什么方法可以在不产生此错误的情况下实现我想要的。

3个回答

您在数组上使用 for-in 循环,而不使用可枚举键(索引)。你应该Array#forEach改用,因为它接受回调,你可以省略任何参数:

myArray.forEach(() => { // No callback args
  newArray.push({
    var1: someFunctionValue(),
    var2: anotherFunctionValue()
  });
});

此外,现在我正在阅读您的变量名称,您似乎正在尝试进行映射操作,就像对于 中的每个元素一样myArray,您需要一个newArray与每个索引相关联的新元素如果是这种情况,更好的方法是Array#map您的myArray

const newArray = myArray.map(() => ({
  var1: someFunctionValue(),
  var2: anotherFunctionValue(),
}));

不需要任何中介,而且很简洁。

您可以使用forEach不需要变量的代替:

myArray.forEach(() => {
  newArray.push({
    var1: someFunctionValue(),
    var2: anotherFunctionValue()
  });
});

基于这个答案您也可以尝试在循环外声明变量。

对于我的用例,我需要一个break声明,所以forEach()对我不起作用。


let i = null;
for(i in myArray){
  if (i==='fooBar') {
     break;
   } 
    else {
        newArray.push({
        var1: someFunctionValue(i),
        var2: anotherFunctionValue()
  });

}


}