如何在函数的for循环中累加数组元素以计算数组平均值?
数组平均值计算的代码修正
你的代码里有三个关键问题需要调整,下面一步步说明并给出修正后的版本:
total变量要放在循环外初始化:如果把let total写在循环里,每次循环都会重新创建一个值为undefined的total,根本没法累加。得把它移到循环外面,初始值设为0。- 循环内实现累加:每次循环中,把当前数组元素
array[i]加到total上,用total += array[i]就可以完成累加操作。 - return语句要放在循环结束后:如果在循环里写
return,第一次循环执行到这里就会直接退出函数,循环根本跑不完。必须等循环把所有元素都累加完,再用总和除以数组长度得到平均值返回。
修正后的完整代码:
function getAverage(array) { let total = 0; // 初始化总和变量 for (let i = 0; i < array.length; i++){ total += array[i]; // 累加当前数组元素 } return total / array.length; // 循环结束后计算并返回平均值 } console.log(getAverage([20, 22, 24, 26])); // 输出:23 console.log(getAverage([22, 45, 4, 65])); // 输出:34,符合示例要求
另外,也可以用JavaScript的数组方法简化写法,比如reduce来计算总和,代码会更简洁:
function getAverage(array) { const total = array.reduce((sum, num) => sum + num, 0); return total / array.length; }
内容的提问来源于stack exchange,提问作者Justin Hawkins
相关产品推荐
相关产品推荐

