使用一元运算符"++"。while循环中的棉绒错误



我做了一个函数,求和数组的平均值,但我有lint问题,它谈论i++,我试过[I += 1];但是它破坏了我的代码。

function average(myArray) {
let i = 0;
let summ = 0;
if (myArray.length === 0) return undefined;

let ArrayVz = myArray.length;
while (i < ArrayVz) {
summ += myArray[i += 1];
if (typeof summ === 'string') return undefined;
}
return Math.round(summ / ArrayVz);
}

i++i += 1给出不同的结果…这就是为什么你的linter首先抱怨使用i++。它使得代码混淆。

您似乎想要取i的值,然后为下一个循环添加一个。

i++将这样做,但i += 1在之前添加一个new


将代码拆分为单独的语句,使其更清晰(顺序是明确的),更易于维护。

summ += myArray[i];
i += 1;

将其写成for循环而不是while循环会更习惯。

我注意到,你没有算进去。我会使用像这样的for循环

function average(myArray) {
let i = 0;
let summ = 0;
if (myArray.length === 0) return undefined;

let ArrayVz = myArray.length;
for (let i = 0; i < ArrayVz.length; i++) {
summ += myArray[i];
if (typeof summ === 'string') return undefined;
}
return Math.round(summ / ArrayVz);
}

你可以这样做

function average(myArray) {
let i = 0;
let summ = 0;
if (myArray.length === 0) return undefined;

let ArrayVz = myArray.length;
for (let i = 0; i < ArrayVz.length; i++) {
summ += myArray[++i];
if (typeof summ === 'string') return undefined;
}
return Math.round(summ / ArrayVz);
}

请禁用下一行的lint错误,并使用它

最新更新