成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JS中reduce方法

yuanxin / 1716人閱讀

摘要:定義和用法方法接收一個函數(shù)作為累加器,數(shù)組中的每個值從左到右開始縮減,最終計算為一個值。

定義和用法

reduce() 方法接收一個函數(shù)作為累加器,數(shù)組中的每個值(從左到右)開始縮減,最終計算為一個值。

reduce() 可以作為一個高階函數(shù),用于函數(shù)的 compose

reduce() 對于空數(shù)組是不會執(zhí)行回調(diào)函數(shù)的

瀏覽器支持

支持谷歌、火狐、ie9以上等主流瀏覽器

語法
array.reduce(function(prev, current, currentIndex, arr), initialValue)

prev:函數(shù)傳進來的初始值或上一次回調(diào)的返回值

current:數(shù)組中當前處理的元素值

currentIndex:當前元素索引

arr:當前元素所屬的數(shù)組本身

initialValue:傳給函數(shù)的初始值

初始值為數(shù)值:

       const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
       const sum = arr.reduce(function (prev, current) {
         return prev+current
       }, 0)
       console.log(sum) //55

reduce根據(jù)函數(shù)傳進來的初始值,不斷回調(diào)疊加最終算出數(shù)組的和

初始值為對象:

      const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
       const sum = arr.reduce(function (prev, current) {
         prev.count = prev.count+current
         return prev
       }, {count: 0})
       console.log(sum) //{count: 55}

如果初始值為對象的話,返回的也是一個對象

初始值為數(shù)組:

      const str = "hello"
      const newstr = str.split("").reduce(function (prev, current) {
         const obj = {};
         obj[current] = current;
         prev.push(obj)
         return prev;
      }, [])
      console.log(newstr)

結(jié)果為:

    [{
        h: "h"
      },{
        e: "e"
      },{
        l: "l"
      },{
        l: "l"
      },{
        o: "o"
      }]

如果初始值為數(shù)組,則返回的也是數(shù)組

reduce應(yīng)用:

    {
      function func1(a) {
        return a*10;
      }

      function func2(b) {
        return b*2
      }

      const test1 = func1(2)
      const test2 = func2(test1)
      console.log(test2) //40
    }

這里我們需要先執(zhí)行方法func1再根據(jù)func1返回的值,然后執(zhí)行方法func2,我們有時候會碰到不止兩個方法一起,如果是多個呢,這個時候就要用到reduce來處理了

     function func1(a) {
        return a*10;
      }

      function func2(b) {
        return b*2
      }

      function func3(c) {
        return c/2;
      }
      const compose = (...func) => (...init) => {
          if(func.length >= 2){
            return func.reduce((prev, curr)=>{
               prev = curr(prev)
               return prev;
            }, ...init)
          }
          return func(...init);
      }

      const a1 = compose(func1,func2)(2);
      console.log(a1) //40
      const a2 = compose(func1,func2,func3)(2);
      console.log(a2) //20

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/101148.html

相關(guān)文章

  • JS進階篇--JS數(shù)組reduce()方法詳解及高級技巧

    摘要:基本概念方法接收一個函數(shù)作為累加器,數(shù)組中的每個值從左到右開始縮減,最終為一個值。例進階應(yīng)用使用方法可以完成多維度的數(shù)據(jù)疊加。在該函數(shù)內(nèi)部,則執(zhí)行多維的疊加工作。參考的內(nèi)建函數(shù)數(shù)組方法的高級技巧 基本概念 reduce() 方法接收一個函數(shù)作為累加器(accumulator),數(shù)組中的每個值(從左到右)開始縮減,最終為一個值。 reduce 為數(shù)組中的每一個元素依次執(zhí)行回調(diào)函數(shù),不包括...

    jerryloveemily 評論0 收藏0
  • JS的內(nèi)建函數(shù)reduce

    摘要:函數(shù),是規(guī)范中出現(xiàn)的數(shù)組方法。所有的一切通過一個函數(shù)來管理流程和傳遞初始參數(shù)。上面就是函數(shù)的實現(xiàn),它需要對象作為參數(shù),并返回一個類型的函數(shù),作為的第一個參數(shù)。在該函數(shù)內(nèi)部,則執(zhí)行多維的疊加工作。 @(js) reduce函數(shù),是ECMAScript5規(guī)范中出現(xiàn)的數(shù)組方法。在平時的工作中,相信大家使用的場景并不多,一般而言,可以通過reduce方法實現(xiàn)的邏輯都可以通過forEach方法來...

    mrcode 評論0 收藏0
  • reduce 方法實現(xiàn) webpack 多文件入口

    摘要:這篇日志,在開始接觸時候就該寫了,現(xiàn)在發(fā)布也許對一些剛?cè)氪丝拥耐苄┰S幫助。。。 這篇日志,在開始接觸 webpack 時候就該寫了,現(xiàn)在發(fā)布也許對一些剛?cè)氪丝拥耐苄┰S幫助。。。即使有點 low,重要的仍是分享 1. reduce 方法介紹 1.1 簡單場景 reduce 函數(shù)的設(shè)計意圖就是方便進行疊加運算: var arr = [0, 1, 2, 3]; // reduce ...

    Little_XM 評論0 收藏0
  • React 和 Redux 的動態(tài)導(dǎo)入

    摘要:動態(tài)導(dǎo)入使用的是的方法來加載代碼。使用到目前為止,我們已經(jīng)演示了如何動態(tài)加載應(yīng)用程序的模塊。還需要公開一個名稱,在該名稱下我們的模塊狀態(tài)將存在于應(yīng)用程序的中。剩下的唯一部分就是把注冊到中。 showImg(https://segmentfault.com/img/bVbpGXm?w=800&h=450); 想閱讀更多優(yōu)質(zhì)文章請猛戳GitHub博客,一年百來篇優(yōu)質(zhì)文章等著你! 代碼分離與...

    jayzou 評論0 收藏0
  • Redux 源碼拾遺

    摘要:循環(huán)還沒有結(jié)束,其中的某個對進行了添加或者刪除,都會影響到此次循環(huán)的進行,帶來不可預(yù)期的錯誤。 首先來一段 redux 結(jié)合 中間件 thunk、logger 的使用demo 了解一下應(yīng)該如何使用 const redux = require(redux) const { createStore, combineReducers, bindActionCreators, ...

    CloudwiseAPM 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<