JS reduce函數(shù)

定義和用法

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

array.reduce(function(prev, cur, currentIndex, arr), initialValue)
:param function(prev, cur, index, arr) 必需晤斩。用于執(zhí)行每個數(shù)組元素的函數(shù)餐弱。
函數(shù)參數(shù):
    prev:   必需宴霸。初始值, 或者計算結(jié)束后的返回值。
    cur:  必需膏蚓。當(dāng)前元素
    currentIndex:  可選瓢谢。當(dāng)前元素的索引
    arr:  可選。當(dāng)前元素所屬的數(shù)組對象驮瞧。
:param initialValue: 可選氓扛。傳遞給函數(shù)的初始值

注意:沒有第二個參數(shù)的時候prev初始值默認(rèn)為數(shù)組的第一項,此時循環(huán)從數(shù)組的第二項開始,有第二個參數(shù)的時候prev為第二個參數(shù)值采郎,此時循環(huán)從數(shù)組的第一項開始千所。

常見應(yīng)用:

1. 求和:
const arr = [15, 19, 10, 14, 26, 8];
const total = arr.reduce((prev, cur) => {
    return prev + cur
})
console.log(total)//數(shù)組的和
2. 求平均
const arr = [15, 19, 10, 14, 26, 8];
const avg= arr.reduce((prev, cur, index, array) => {
     prev += cur
     if( index === array.length-1) { 
        return prev/array.length;
      }else { 
        return prev;
      } 
})
3. 求元素出現(xiàn)的次數(shù)
const arr = ['banana', 'cherry', 'orange', 'apple', 'cherry', 'orange', 'apple', 'banana', 'cherry', 'orange', 'fig' ];
const total = arr.reduce((prev, cur) => {
    prev[cur] = (prev[cur] || 0) + 1
    return prev
}, {})
4. 將二維數(shù)組轉(zhuǎn)換為一維數(shù)組
const data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const flat = data.reduce((prev, cur) => {
    return prev.concat(cur)
}, [])
5. 求數(shù)組最大值
const num = [1, 2, 3, 5, 5, 1]
const max_num = num.reduce((prev, cur) => {
    return Math.max(prev, cur)
})
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蒜埋,隨后出現(xiàn)的幾起案子淫痰,更是在濱河造成了極大的恐慌,老刑警劉巖整份,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件待错,死亡現(xiàn)場離奇詭異,居然都是意外死亡烈评,警方通過查閱死者的電腦和手機朗鸠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來础倍,“玉大人烛占,你說我怎么就攤上這事」灯簦” “怎么了忆家?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長德迹。 經(jīng)常有香客問我芽卿,道長,這世上最難降的妖魔是什么胳搞? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任卸例,我火速辦了婚禮,結(jié)果婚禮上肌毅,老公的妹妹穿的比我還像新娘筷转。我一直安慰自己,他們只是感情好悬而,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布呜舒。 她就那樣靜靜地躺著,像睡著了一般笨奠。 火紅的嫁衣襯著肌膚如雪袭蝗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天般婆,我揣著相機與錄音到腥,去河邊找鬼。 笑死蔚袍,一個胖子當(dāng)著我的面吹牛乡范,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼篓足,長吁一口氣:“原來是場噩夢啊……” “哼段誊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起栈拖,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤连舍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后涩哟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體索赏,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年贴彼,在試婚紗的時候發(fā)現(xiàn)自己被綠了潜腻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡器仗,死狀恐怖融涣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情精钮,我是刑警寧澤威鹿,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站轨香,受9級特大地震影響忽你,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜臂容,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一科雳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧脓杉,春花似錦糟秘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至沛婴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間督赤,已是汗流浹背嘁灯。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留躲舌,地道東北人丑婿。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親羹奉。 傳聞我的和親對象是個殘疾皇子秒旋,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 庸人自擾到不一定是壞事,可憐確是碌碌無為诀拭,感嘆平凡可貴迁筛,被時間推趕向前,被命運壓負(fù)永遠(yuǎn)耕挨。 曾經(jīng)所有的努力都只是邀寵...
    Je_隨景閱讀 305評論 1 2
  • 春夜喜雨 杜甫(唐) 好雨知時節(jié)细卧,當(dāng)春乃發(fā)生。 隨風(fēng)潛入夜筒占,潤物細(xì)無聲贪庙。 野徑云俱黑,江船火獨明翰苫。 曉看紅濕...
    淺藍(lán)_6bce閱讀 319評論 2 6
  • 竟然還是會去知乎搜索失戀后覺得人生無意義該怎么辦的話題止邮,只能說不學(xué)習(xí)不工作時間廢得太多。不過這好像確實是我自己的真...
    齊祖閱讀 162評論 0 0