国产精品爱久久久久久久小说,女人扒开腿让男人桶到爽 ,亚洲欧美国产双大乳头,国产成人精品综合久久久久,国产精品制服丝袜无码,免费无码精品黄av电影,黑色丝袜无码中中文字幕,乱熟女高潮一区二区在线

    js reduce()

    2019-11-1    seo達人

    是什么

    ES5提供的數組的方法。

    reduce() 方法接收一個函數作為回調函數(accumulator),數組中的每個值(從左到右)開始縮減(其實就是從左往右開始對每個數執行回調函數),最終為一個值。



    PS: 回調函數的返回結果類型和傳入的初始值相同



    語法以及參數

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

    1

    initialValue 可選

    如果有的話則作為,第一次調用 callback函數時的第一個參數的值。

    如果沒有提供初始值,callback則使用數組的第一個元素,作為第一次調用的初始值。

    在沒有初始值的空數組上調用 reduce 將報錯。



    accumulator

    默認傳入上一次調用回調函數的的返回值。

    初始值: initialValue存在的話,則是initialValue 若沒有則是數組的第一個元素



    currentValue

    數組中正在處理的元素。



    index 可選

    數組中正在處理的當前元素的索引。 如果提供了initialValue,則起始索引號為0,否則從索引1起始。



    array可選

    調用reduce()的數組



    一個小小的例子

    例1 無initialValue

    var  arr = [1, 2, 3, 4, 5];

    sum = arr.reduce(function(result, cur, index, arr) {

        console.log(result, cur, index,arr);

        return result+ cur;

    })

    console.log(sum) // 最后的結果是15



    result cur index arr

    第1次 1 2 1 [1, 2, 3, 4, 5]

    第2次 3 3 2 [1, 2, 3, 4, 5]

    第3次 6 4 3 [1, 2, 3, 4, 5]

    第4次 10 5 4 [1, 2, 3, 4, 5]

    例2 有initialValue 傳入10

    var  arr = [1, 2, 3, 4, 5];

    sum = arr.reduce(function(result, cur, index, arr) {

        console.log(result, cur, index,arr);

        return result+ cur;

    },10)

    console.log(sum) // 最后的結果是25



    result cur index arr

    第1次 10 1 0 [1, 2, 3, 4, 5]

    第2次 11 2 1 [1, 2, 3, 4, 5]

    第3次 13 3 2 [1, 2, 3, 4, 5]

    第4次 16 4 3 [1, 2, 3, 4, 5]

    第5次 20 5 4 [1, 2, 3, 4, 5]

    回調函數的返回值

    上面的例子返回的都是一個整型數字,如果希望返回其他類型的數據呢?



    這個就跟accumulator的初始值有關系了。

    下面的例子我們傳入的是一個object {sum: 0}



    var items = [0,1,2,3,4];

    var reducer = function add(sumT, item) {

      console.log(sumT)

      sumT.sum = sumT.sum + item;

      return sumT;

    };

    var total = items.reduce(reducer, {sum: 0});

    console.log(total); // {sum:1130}



    運行結果



     {sum: 0}

     {sum: 1}

     {sum: 3}

     {sum: 6}

     {sum: 10}



    reduce()的應用

    1. 數組扁平化

      遞歸+reduce



      let arr = [1, 2, '3js', [4, 5, [6], [7, 8, [9, 10, 11], null, 'abc'], {age: 12}, [13, 14]], '[]'];



      function flatten(arr) {

        if(Array.isArray(arr)) {

          return arr.reduce((prev, cur) => {

             // 如果遍歷的當前項是數組,遞歸調用flatten

            return Array.isArray(cur) ? prev.concat(flatten(cur)) : prev.concat(cur)

          }, [])

        } else {

          throw new Error(' 當前參數不是數組')

        }

      }

      console.log(flatten(arr));



      PS:這里的throw new Error只是用來判斷一開始的arr,這是因為在遞歸只傳入數組。


    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://m.dzxscac.cn

    存檔

    主站蜘蛛池模板: 中文字幕av一区| 91资源站| 男人猛躁进女人免费播放| 米奇欧美777四色影视在线 | 国内免费久久久久久久久久 | 国内不卡一区二区三区| 88av网站| 日韩久久无码精品不卡一区二区电影 | 男生吃小头头的视频| 免费视频色| 久久综合综合久久综合| 极品少妇伦理一区二区| 欧美1级片| 欧美性福利| 亚洲精品综合五月久久小说| 久久精品aⅴ无码中文字字幕不卡 成人免费无码h在线观看不卡 | 野狼第一精品社区| 午夜高清在线无码| 欧美激情国产精品| 鸥美毛片| 日本三级吃奶头添泬无码苍井空| 亚洲精品国产一二三无码av| 毛片网络| 欧美午夜精品理论片a级按摩| 天堂а√在线地址中文在线| 久久国产精品99精品国产987| 爱情岛论坛永久入口| 骚av在线| 无遮挡aaaaa大片免费看| 精品无码一级毛片免费| 黄床片30分钟免费视频教程| 国产欧美日韩精品丝袜高跟鞋| 国产福利视频在线精品| 免费看a| 天天插夜夜| 粉嫩小泬无遮挡久久久久久| 日韩精品人妻中文字幕有码| 国v精品久久久网| 久久人妻无码一区二区| 激情毛片无码专区| 偷拍福利视频|