JS reduce 用法

    定义: reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值

  语法:

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

参数

参数描述
function(total,currentValue, index,arr)必需。用于执行每个数组元素的函数。
函数参数:
参数描述
total必需。初始值, 或者计算结束后的返回值。
currentValue必需。当前元素
currentIndex可选。当前元素的索引
arr可选。当前元素所属的数组对象。
initialValue可选。传递给函数的初始值

ES6,之前繁杂的写法

例;我们想遍历数组中的元素做拼接或者累加操作

<script>
        var numbers = [1, 2, 3, 4, 5, 6];
        function Sum(total, num) {
            return total + num;
        }
        function myFunction(item) {
            document.getElementById("demo").innerHTML = numbers.reduce(Sum);
        }
    </script>
    <button οnclick="myFunction()">add</button>
    <div id="demo"></div>

ES6 执行同样操作写法,可以大大减少我们的代码量,以及提高代码的可阅读性

        /*
        参数1.prev 上一次返回的值,
        参数2.item 本次的值,
        参数3.最后一个参数(prev初始值),涉及到一个对象类型,例如如果原数组里面存的是数字,最后一个参数传空数组[]的时候,
        默认数据是字符串拼接,这时候返回值也就是123456
        如果我们想做到里面的数组迭代相加,那我们在最后的参数传一个数字类型的参数,例如我们传0,这时候就按照数字相加,
        这里还需要注意的就是传的时候不能加" "如果加了引号还认为是字符串的拼接   
        */
        let sum = [1, 2, 3, 4, 5, 6].reduce((prev, item) => { return prev + item }, 1);
  这里需要注意的是最后一个参数, initialValue,类型的选择如文中红色标注的传入相应类型就会暗转相应类型的数据去进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值