美文网首页让前端飞
数组之reduce()方法

数组之reduce()方法

作者: jia林 | 来源:发表于2018-10-25 10:11 被阅读3次

reduce()方法将指定的函数将数组元素进行组合,生成单个值,可以实现累加

一、reduce参数

1、第一个参数是方法,方法里的参数:

@param result 运算结果
@param current 当前值
@param currentIndex 当前值得索引值
@param arr 自身数组

2、第二个参数可选,是一个传递给函数的初始值。如果第二个参数有值,那么作为运算的初始值参与函数运算,如果第二个参数没有值,那么数组中的首位将作为函数运算的初始值,参与函数运算的数组其他位向后平移一位。

    var arr = [2,3,4,5,6];
    /*  reduce参数
        @param result 预算结果
        @param current 当前值
        @param currentIndex 当前值得索引值
        @param arr 自身数组
    */
    var b = arr.reduce(function(result,current,currentIndex,arr){
        console.log(result,current,currentIndex,arr,'param');
    /*  第二个参数当做初始值进行运算:
        10 + 2 ---> 12
        12 + 3 ---> 15
        15 + 4 ---> 19
        19 + 5 ---> 24
        24 + 6 ---> 30
        */
        return result + current
    },10);
    var c = arr.reduce(function(result,current,currentIndex,arr){
        console.log(result,current,currentIndex,arr,'param');
    /*  第二个参数没有的话,将数组中的首位将作为函数运算的初始值,参与函数运算的数组其他位向后平移一位:
        10 + 2 ---> 12
        12 + 3 ---> 15
        15 + 4 ---> 19
        19 + 5 ---> 24
        24 + 6 ---> 30
        */
        return result + current
    });
    console.log(b);  //30
    console.log(c);  //20
二、自己封装reduce()
    Array.prototype.MyReduce = function(func,init){
        var len = this.length;
        var prev = init;
        var i = 0;
        if(init == undefined){
            prev = this[0];
            i = 1;
        }
        for(i;i<len;i++){
            prev = func(prev,this[i],i,this)
        }
        return prev
    }

三、练习

获得当前时间并将其转换成字符串形式

var date = new Date();
    var arr = [date.getHours(),date.getMinutes(),date.getSeconds()];
    var result = arr.reduce(function(result,current){
        /*用0拼接,主要是用于小于10的数字,
        slice裁剪主要是截取最后2位
        01  slice 01
        010 slice 10*/
        return result + ('0'+current).slice(-2)
    },"");
    console.log(result)

相关文章

  • JavaScript数组的简化

    JavaScript中数组的常用操作之数组的简化 Array.reduce() 方法 Array.reduce(c...

  • js中数组reduce方法的使用和实现

    js中数组reduce方法的使用和实现 reduce方法定义 reduce() 方法对数组中的每个元素执行一个传入...

  • 数组之reduce()方法

    reduce()方法将指定的函数将数组元素进行组合,生成单个值,可以实现累加 一、reduce参数 1、第一个参数...

  • 由对象组成的数组去重方法

    1.定义数组对象: 2.使用数组的reduce()方法 reduce()方法:接收一个函数作为累积器,数组中的每个...

  • javascript高阶函数--未更新完

    pipe compose curring filter --数组的方法 map--数组的方法 reduce--数组...

  • JavaScript迭代

    遍历对象 方法1 方法2 遍历数组 方法1 方法2 方法3 map数组 filter数组 reduce数组 找到某...

  • JS数组对象去重

    待去重数组 方法一:for循环 方法二:reduce

  • js数组去重

    1. 利用filter方法 chrome执行结果如下 2. 利用reduce方法 reduce() 方法对数组中的...

  • Js数组之reduce()方法

    1、语法 reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:...

  • Swift reduce 函数

    reduce Swift中数组的reduce方法用于做序列元素的累加,如数组元素的累加, 函数原型: 参数: in...

网友评论

    本文标题:数组之reduce()方法

    本文链接:https://www.haomeiwen.com/subject/yfqqtqtx.html