老师 reduce用法不太清楚

老师 reduce用法不太清楚

<!DOCTYPE html>


<html>


<head>


    <meta charset="utf-8">


    <title>Document</title>


</head>


<body>


    <script>


        const add = (...args) =>{


            // 在此补充代码

            let sum = 0;

            sum = args.reduce((a=0,b=0)=>a+b);

            return sum


        }


       document.write(add(1,2,3,4,5));


    </script>


</body>


</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕慕子 2021-03-08 18:39:26

同学你好,代码实现是正确的,关于reduce的用法,可以参考如下解析:

1、语法

arr.reduce(callback(accumulator, currentVal, index, array), initialValue)

(1)第一个参数是要执行的函数,该函数中传入的参数

accumulator:上一次调用回调时返回的累积值,必选项。

currentVal:当前元素,必选项。

index:当前索引 ,可选项。

array: 被遍历的数组,可选项。

(2)第二个参数是函数迭代的数值

initialValue:第一次调用函数时的第一个参数的值, 如果没有提供初始值,则将使用数组中的第一个元素。 

2、示例:

(1)没有设置初始值

http://img1.sycdn.imooc.com//climg/6045fe5c09948bca11090254.jpg

reduce的作用就是对这个数组进行求和,迭代了3次,函数迭代的初始值是1,也就是默认值(数组的第一项),accumulator的值是每次计算后的值。

第一次迭代时,accumulator = 1; currentVal = 2; index = 1; arrar = arr; 函数返回值为:3

第二次迭代时,accumulator = 3; currentVal = 3; index = 2; arrar = arr;

函数返回值为:6

第三次迭代时,accumulator = 6; currentVal = 4; index = 3; arrar = arr

函数返回值为:10

运行结果如下:

http://img1.sycdn.imooc.com//climg/6045fe7209a3040208810268.jpg

(2)设置初始值

http://img1.sycdn.imooc.com//climg/6045fe9d09fa733812300245.jpg

添加了一个初始的迭代值10,也就是让accumulator 从10开始计算,结合下图所示的打印结果,可知这里迭代了4次,结果中也加上了初始值。

https://img1.sycdn.imooc.com//climg/617771d30938866912120453.jpg

reduce这个方法与迭代方法(forEach方法等)一样,都会对数组进行遍历,不同的是reduce方法的回调函数中的第一个参数得到的是迭代计算后的结果。

祝学习愉快~

  • 这个方法是不是可以简写

    2021-10-25 20:32:31
  • 同学你好,同学说的简写是指使用箭头函数吗?

    如果是的话,那么是可以的,如果不是的话,可以详细描述下具体是指什么呢?便于帮助同学准确的定位与解答。

    祝学习愉快~

    2021-10-26 11:13:08
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师