這篇文章主要講解了如何使用JS數(shù)組Reduce方法,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、西充網(wǎng)站維護(hù)、網(wǎng)站推廣。概述
一直以來都在函數(shù)式編程的大門之外徘徊,要入門的話首先得熟悉各種高階函數(shù),數(shù)組的reduce方法就是其中之一。
reduce方法將會(huì)對(duì)數(shù)組元素從左到右依次執(zhí)行reducer函數(shù),然后返回一個(gè)累計(jì)的值。舉個(gè)形象的例子:你要組裝一臺(tái)電腦,買了主板、CPU、顯卡、內(nèi)存、硬盤、電源...這些零件是組裝電腦的必要條件。
裝的過程可以簡單概括為拆掉每個(gè)零件的包裝,再裝到一起。類比一下reduce函數(shù)就可以明白了,那些零件就相當(dāng)于要執(zhí)行reduce方法的數(shù)組,對(duì)每個(gè)零件執(zhí)行拆除包裝的加工程序,就是對(duì)數(shù)組的每個(gè)元素執(zhí)行reducer函數(shù),把這些零件裝到一起,就相當(dāng)于reduce方法的任務(wù),最終組裝好的電腦相當(dāng)于reduce方法的返回值。
reduce方法接收兩個(gè)參數(shù),第一個(gè)參數(shù)是回調(diào)函數(shù)reducer,第二個(gè)參數(shù)是初始值。reducer函數(shù)接收四個(gè)參數(shù):
如果傳入第二個(gè)參數(shù),reduce方法會(huì)在這個(gè)參數(shù)的基礎(chǔ)上開始累計(jì)執(zhí)行。
概念講了那么多,那reduce它的執(zhí)行機(jī)制是怎樣的呢?別著急,從用法入手一點(diǎn)一點(diǎn)分析。
來個(gè)最好理解的例子:數(shù)組求和
const arr = [1, 2, 3, 4] const accumulator = (total, current, currentIndex, arr) => { console.log(total, current, currentIndex, arr); return total + current } console.log(arr.reduce(accumulator))