我创建了一个函数,可以找到您放入的任何数组的总和。问题是,如果我有其中两个console.log,第二个会将第一个数组的总和添加到其结果中。我做错了什么?
let sum = 0;
function getAverage(scores) {
for (let i = 0; i < scores.length; i++ ) {
sum += scores[i];
}
return sum
}
console.log(getAverage([92, 88, 12, 77, 57, 100, 67, 38, 97, 89]));
console.log(getAverage([45, 87, 98, 100, 86, 94, 67, 88, 94, 95]));
第一个是717,第二个应该是854,但它添加了第一个的结果得到1571。
这是因为您定义的
sum
变量位于函数 getAverage
之外,并且在调用函数时不会重置。
您可以在函数内部声明变量,以便每次调用函数时都会创建一个新变量。
您也可以使用
reduce
function getAverage(scores) {
return Array.isArray(scores) && scores.reduce((acc, curr) => acc + curr, 0)
}
console.log(getAverage([92, 88, 12, 77, 57, 100, 67, 38, 97, 89]));
console.log(getAverage([45, 87, 98, 100, 86, 94, 67, 88, 94, 95]));