请老师看下

来源: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回答

好帮手慕久久

2021-06-25

同学你好,解答如下:

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刚好是全部参数的和,这样就直接达到了目的,少了很多无用操作,代码的效率更高。

祝学习愉快!

0

0 学习 · 15276 问题

查看课程