• <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <small id="ggggg"></small> <sup id="ggggg"></sup>
    <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <tfoot id="ggggg"></tfoot>
  • <nav id="ggggg"><cite id="ggggg"></cite></nav>
    <nav id="ggggg"></nav>
    成人黃色A片免费看三更小说,精品人妻av区波多野结衣,亚洲第一极品精品无码,欧美综合区自拍亚洲综合,久久99青青精品免费观看,中文字幕在线中字日韩 ,亚洲国产精品18久久久久久,黄色在线免费观看

    js reduce()

    2019-11-1    seo達(dá)人

    是什么

    ES5提供的數(shù)組的方法。

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



    PS: 回調(diào)函數(shù)的返回結(jié)果類型和傳入的初始值相同



    語法以及參數(shù)

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

    1

    initialValue 可選

    如果有的話則作為,第一次調(diào)用 callback函數(shù)時的第一個參數(shù)的值。

    如果沒有提供初始值,callback則使用數(shù)組的第一個元素,作為第一次調(diào)用的初始值。

    在沒有初始值的空數(shù)組上調(diào)用 reduce 將報錯。



    accumulator

    默認(rèn)傳入上一次調(diào)用回調(diào)函數(shù)的的返回值。

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



    currentValue

    數(shù)組中正在處理的元素。



    index 可選

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



    array可選

    調(diào)用reduce()的數(shù)組



    一個小小的例子

    例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) // 最后的結(jié)果是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) // 最后的結(jié)果是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]

    回調(diào)函數(shù)的返回值

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



    這個就跟accumulator的初始值有關(guān)系了。

    下面的例子我們傳入的是一個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}



    運行結(jié)果



     {sum: 0}

     {sum: 1}

     {sum: 3}

     {sum: 6}

     {sum: 10}



    reduce()的應(yīng)用

    1. 數(shù)組扁平化

      遞歸+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) => {

             // 如果遍歷的當(dāng)前項是數(shù)組,遞歸調(diào)用flatten

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

          }, [])

        } else {

          throw new Error(' 當(dāng)前參數(shù)不是數(shù)組')

        }

      }

      console.log(flatten(arr));



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


    日歷

    鏈接

    個人資料

    存檔

    主站蜘蛛池模板: 91含羞草www·Com| 热思思99re久久精品国产首页| 亚洲伊人久久成人综合网| 自拍偷拍亚洲免费视频| 手机看片AV永久免费无码| 97SE亚洲国产综合自在线尤物| 国产午夜无码片在线观看影院| 日本一区二区三区内射| 久久精品一二三区视频| 18禁色诱爆乳网站| 一区二区三区av天堂| 欧美激情在线精品一区二区| 国产丝袜美女一区二区三区| 第一福利视频| 中文亚洲AV片在线观看无码| 日本中文一区二区三区亚洲| 日韩av影视| 国产av剧情md精品麻豆| 国产成人一区在线播放| 国产成人自拍视频播放| 精品少妇无码一区二区三批| 国产福利免费视频不卡免费一级a片| 日韩女同一区二区三区| 久久综合综合久久狠狠狠97色| 在线播放亚洲欧美日韩| 无码成人片在线播放| 制服jk白丝h无内视频网站| 亚洲精品国产日韩无码AV永久免费网| 欧美精品v日韩精品v国产精品| 久久亚洲人成电影网| 亚洲av无码成人精品区一区| 乱伦导航| 97se亚洲国产综合自在线观看| 日本阿v精品视频在线观看 | 国产精品亚洲二区在线播放| 香蕉eeww99国产精选播放| 欧洲中文字幕一区二区 | 成A人片亚洲日本久久| 无码人妻专区免费视频| 午夜在线a亚洲v天堂网2018| 岛国av一区二区三区|