我做了一个函数,求和数组的平均值,但我有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错误,并使用它