请老师看下
来源:2-4 编程练习
我不是胖球球
2021-06-25 13:13:43
相关代码:
ave = result / args.length; 写在for循环里面和外面是都可以的吗?
// 2-4编程练习
// 剩余参数(…)搭配的变量是一个数组,该变量将多余的参数放入数组中。我们来定义一个函数,利用剩余参数,向该函数传入任意数目的参数,然后来求平均数。1、可以用for循环计算参数之和。2、可以用length来获得数组中元素的数目
const average = (...args) => {
let result = 0, ave;
for (let i = 0, result = 0; i < args.length; i++) {
result += args[i];
ave = result / args.length;
}
// ave = result / args.length;
return ave;
}
console.log(average(1, 2, 3, 4, 5, 6, 7, 8, 9));
</script>
1回答
同学你好,解答如下:
ave = result / args.length写在for循环里面和外面,都能实现效果,但是执行过程有区别,具体如下:
写在for循环里面,每循环一次,就要执行ave = result / args.length,过程如下:
...
当i等于2时,result是参数中索引0到索引2的和;此时计算出来的ave不是我们需要的。
当i等于3时,result就是索引0到索引3的和;此时计算出来的ave也不是我们需要的。
...
当i等于args.length-1时,result才是全部参数的和。这时候计算出来的ave,才是我们想要得到的“全部参数的和的平均数”。
从上述过程可以看到,将ave = result / args.length写在循环中,会存在很多无用的计算。
而写在外面,只在跳出for循环后,才计算一次ave = result / args.length;由于跳出for循环后,result刚好是全部参数的和,这样就直接达到了目的,少了很多无用操作,代码的效率更高。
祝学习愉快!
相似问题