前端循环reduce的用法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /* 
        reduce 归并事件
        只是逼格更高而已
        */
        /* 
        arr.reduce( callback,[initialValue] )
        reduce为数组中的每一个元素依次执行回调函数 接收四个参数值 :
            初始值(或者上一次回调函数的返回值)
            当前元素值 
            当前索引
            调用reduce的数组
        callback:执行数组中每个值的函数 包含四个参数
            1、previousValue (上一次调用回调返回的值 或者 提供的初始值 (initialValue))
            2、currentValue (数组中当前被处理的元素)
            3、index(当前元素所在数组中的索引)
            4、array(调用reduce的数组)
        initialValue(作为第一次调用callback的第一个参数)


        */
       /* 实例解析initialValue参数 */
    //    var arr = [1,2,3,4];
      /*  var arr = [];
       var sum = arr.reduce( function(prev,cur,index,arr){
        console.log(prev,cur);
        return prev + cur;
       } ,0 ) */
    //没有写初始值 循环了三次 从数组的第一项开始循环的
    //    console.log( arr,sum );

    //    var sum = arr.reduce( function(prev,cur,index,arr){
    //     console.log(prev,cur);
    //     return prev + cur;
    //    } , 0)
    //写了初始值 从数组的第零项开始循环的 循环了四次
    /* 
    如果没有提供initialValue,reduce会从索引1的地方开始执行callback方法,跳过第一个索引
    如果提供了initialValue,从索引0开始

    如果数组为空 会报错 所以设置初始值会更加安全
    */
    /* reduce的简单用法 数组求和 求乘积*/
    // var arr = [1,2,3,4];
    // var sum = arr.reduce( (prev,cur) => prev+cur )
    // // console.log(sum)
    // var mul = arr.reduce( (prev,cur) => prev*cur )
    // console.log(mul)

    /* reduce 的高级用法 
    计算数组中每个元素出现的次数
    */
    // let names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
    // let nameNum = names.reduce( (pre,cur)=>{
    //     if(cur in pre){
    //         pre[cur]++
    //     }else{
    //         pre[cur] = 1
    //     }
    //     return pre
    // },{} )
    // console.log(nameNum)

    /* 数组去重 */
    // let arr = [1,2,3,4,2,1,2,3,4];
    // let newArr = arr.reduce( (pre,cur)=>{
    //     if( !pre.includes(cur) ){
    //         return pre.concat(cur);
    //     }else{
    //         return pre;
    //     }
    // },[] )
    // console.log(newArr)
    
    /* 数组的concat方法 连接数组或者数组中的值*/
    // let arr = [1,2,3,4,5]
    // console.log( arr.concat([2,3,4,5,6]) )

    </script>
</body>
</html>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值