国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

數(shù)組的reduce用法

琛h。 / 2075人閱讀

摘要:定義方法接收一個(gè)函數(shù)作為累加器,數(shù)組中的每個(gè)值從左到右開始縮減,最終計(jì)算為一個(gè)值。對(duì)空數(shù)組是不會(huì)執(zhí)行回調(diào)函數(shù)的。

定義
reduce() 方法接收一個(gè)函數(shù)作為累加器,數(shù)組中的每個(gè)值(從左到右)開始縮減,最終計(jì)算為一個(gè)值。對(duì)空數(shù)組是不會(huì)執(zhí)行回調(diào)函數(shù)的。
語(yǔ)法
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
參數(shù)

var arr = [2,4,6,7,3];
// 前面兩個(gè)是必須, 0表示傳遞給函數(shù)的初始值
arr.reduce((total, currentValue, currentIndex, arr) => {
         // 這里total指初始值, 或者計(jì)算結(jié)束后的返回值,
          console.log(total);              // 0
          console.log(currentValue);       // 2
          console.log(currentIndex);       // 0
          console.log(arr);                // [2,4,6,7,3]
}, 0)
幾種常見用法

1、計(jì)算數(shù)組總數(shù)

var res = arr.reduce((total,num) => {
        return total + num;
    })
    console.log(res)   // 22

2、合并二維數(shù)組

var red = [[0,1],[2,3],[4,5]].reduce((a,b) => {
            return a.concat(b)
    },[])
    console.log(red)   // [0, 1, 2, 3, 4, 5]

3、統(tǒng)計(jì)一個(gè)數(shù)組中有多少個(gè)不重復(fù)的單詞

function getWordCnt1() {
     return reg.reduce((prev, next) => {
           prev[next] = (prev[next] + 1) || 1;
           return prev;
    }, {})
}
console.log(getWordCnt1())    // {apple: 2, orange: 3, pear: 1}

4、去重

var reh = [2,4,5,3,2,4,1]
function distinct(reh) {
     return reh.reduce((prev, cur) => {
           return prev.indexOf(cur) != -1? prev : [...prev, cur]
     },[])
}
console.log(distinct(reh))   // [2,4,5,3,1]
擴(kuò)展

前幾天刷脈脈,看到一個(gè)面試題,要求把數(shù)組里name相等的去重,并且menu求重復(fù)的總和

var arr = [
       {name: "a", menu: 2},
       {name: "a", menu: 21},
       {name: "g", menu: 2},
       {name: "g", menu: 3},
       {name: "g", menu: 3},
       {name: "c", menu: 4},
       {name: "c", menu: 44},
]

如果用reduce做也是非常簡(jiǎn)單,直接上代碼

let reg= Object.entries(arr.reduce((result,obj) => {
            result[obj.name] = (result[obj.name] + obj.menu) || obj.menu
            return result;
        }, {})).map(obj => {
            return {
                name: obj[0],
                menu: obj[1]
    }    
})
console.log(reg)   // [{name: "a", menu: 23}, {name: "g", menu: 8}, {name: "c", menu: 48}]
總結(jié)
reduce(callback,initiaValue)會(huì)傳入兩個(gè)變量,回調(diào)函數(shù)(callback)和初始值(initiaValue)
如果沒有傳入初始值,則 reduce 方法會(huì)對(duì)從第二個(gè)元素開始的每個(gè)元素調(diào)用callback函數(shù)
如果提供了初始值(initiaValue),則 reduce 方法會(huì)對(duì)數(shù)組中的每個(gè)元素調(diào)用一次callback函數(shù)

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/99375.html

相關(guān)文章

  • 淺談JS中 reduce() 用法

    摘要:一語(yǔ)法其中,表示將要原數(shù)組表示上一次調(diào)用回調(diào)時(shí)的返回值,或者初始值表示當(dāng)前正在處理的數(shù)組元素表示當(dāng)前正在處理的數(shù)組元素的索引,若提供值,則索引為,否則索引為表示初始值。 一、語(yǔ)法 arr.reduce(function(prev,cur,index,arr){...}, init); 其中,arr 表示將要原數(shù)組;prev 表示上一次調(diào)用回調(diào)時(shí)的返回值,或者初始值 init;cur 表...

    gplane 評(píng)論0 收藏0
  • js中reduce神奇用法

    摘要:最近經(jīng)常在項(xiàng)目中經(jīng)常看到別人用處理數(shù)據(jù),很是牛掰,很夢(mèng)幻,不如自己琢磨琢磨。初始值或者計(jì)算結(jié)束后的返回值。當(dāng)前元素所屬的數(shù)組對(duì)象。傳遞給函數(shù)的初始值,相當(dāng)于的初始值。 showImg(https://user-gold-cdn.xitu.io/2018/9/4/165a52f4bf93fbf4?w=6000&h=3000&f=jpeg&s=3043490); 最近經(jīng)常在項(xiàng)目中經(jīng)常看到別...

    岳光 評(píng)論0 收藏0
  • js中reduce用法

    摘要:第一天寫文章,心里難免有些小激動(dòng),希望能堅(jiān)持下去,有輸出才有更好的輸入。用戶選擇完之后,我會(huì)得到一個(gè)時(shí)間戳的數(shù)組這里呢我們先需要看一下的語(yǔ)法。 第一天寫文章,心里難免有些小激動(dòng),希望能堅(jiān)持下去,有輸出才有更好的輸入。 reduce這個(gè)方法最初我是在面試題里看見的有一個(gè)長(zhǎng)度為100的數(shù)組,請(qǐng)以優(yōu)雅的方式求出該數(shù)組的前10個(gè)元素之和?答案如下 var a = [1, 2, 3, 4, 5...

    i_garfileo 評(píng)論0 收藏0
  • js數(shù)組方法forEach、map、filter、reduce、every、some總結(jié)

    摘要:不會(huì)改變?cè)瓟?shù)組,它返回過(guò)濾后的新數(shù)組。打印到控制臺(tái)成功的收集到里面錯(cuò)誤的收集到里面。語(yǔ)法參數(shù)回調(diào)當(dāng)前的當(dāng)前的索引值這個(gè)數(shù)組對(duì)象回調(diào)的指向用法場(chǎng)景這個(gè)一般就用在,判斷數(shù)組的每個(gè)元素是否符合條件。 首先是函數(shù)概述:map():返回一個(gè)新的Array,每個(gè)元素為調(diào)用func的結(jié)果 filter():返回一個(gè)符合func條件的元素?cái)?shù)組 some():返回一個(gè)boolean,判斷是否有元素是否符...

    CocoaChina 評(píng)論0 收藏0
  • Javascript 數(shù)組方法全解析(包含es6,es7)

    摘要:數(shù)組方法全解析包含數(shù)組自帶屬性返回創(chuàng)建數(shù)組對(duì)象的原型函數(shù)返回?cái)?shù)組對(duì)象的長(zhǎng)度這個(gè)是老熟人了,可以增加數(shù)組的原型方法和屬性,這個(gè)放在后面的繼承中講數(shù)組的方法首先讓我們看看數(shù)組的對(duì)象屬性。 Javascript 數(shù)組方法全解析(包含es6) 1. 數(shù)組自帶屬性 constructor //返回創(chuàng)建數(shù)組對(duì)象的原型函數(shù) length //返回?cái)?shù)組對(duì)象的長(zhǎng)度 prototype //這個(gè)是老...

    zxhaaa 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<