ES6的reduce用法

ES6的reduce用法

reduce() 方法对数组中的每个元素执行一个由您提供的reduce函数(升序执行),将其结果汇总为单个返回值。reduce方法可做的事情特别多,就是循环遍历能做的,reduce都可以做,比如数组求和、数组求积、数组中元素出现的次数、数组去重等等。

语法


arr.reduce(function(prev,cur,index,arr){
...
}, init);

参数:

prev 必需。累计器累计回调的返回值; 表示上一次调用回调时的返回值,或者初始值 init;
cur 必需。表示当前正在处理的数组元素;
index 可选。表示当前正在处理的数组元素的索引,若提供 init 值,则起始索引为- 0,否则起始索引为1;
arr 可选。表示原数组;
init 可选。表示初始值。

示例

 		//1,求和示例
        let arry = [1, 2, 3, 4, 5];
        const total = arry.reduce((pre, cur) => pre + cur);
        console.log(total); //15
        //2,设置函数的初始迭代值
        let intarry = [1, 2, 3, 4, 5];
        const sum = intarry.reduce((pre, cur) => pre + cur, 5);
        console.log(sum); //20
        //3,数组去重
        let arr = '123123'.split('');
        const newArr = arr.reduce((pre, cur) => {
            return pre.includes(cur) ? pre : pre.concat(cur)
        }, [])
        console.log(newArr)
        //4,求和数组中的对象
        const list = []
        for (let i = 0; i < 5; i++) {
            list.push({
                val: i + 1
            })
        }
        console.log(list);
        const newList = list.reduce((pre, cur) => {
            console.log(pre)
            return pre + cur.val
        }, 0)

        console.log(newList) // 15
        /5,计算数组中字符出现的次数
        let list1 = ["1", "2", "2", "2", "3", "3"];
        const count = list1.reduce((pre, cur) => {
            if (pre[cur]) {
                pre[cur]++
            } else {
                pre[cur] = 1
            }
            return pre
        }, {})
        const count1 = list1.reduce((pre, cur) => pre + (cur == "3" ? 1 : 0), 0)
        console.log(count) //{1: 1, 2: 3, 3: 2}
        console.log(count1) //3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值