上一篇文章中我們了解了創(chuàng)建一個具有可變數(shù)量的數(shù)組的方法,請看《js如何創(chuàng)建一個具有可變數(shù)量的數(shù)組》。這次我們來了解一下數(shù)組中的元素實現(xiàn)累加效果的方法,有需要的可以參考參考。
首先我們來看一個小例子。
我們現(xiàn)在有這樣一個問題,已知,我們有一個包含1,2,3,4這四個元素的數(shù)組,現(xiàn)在我們想知道這個數(shù)組中元素的總和是多少,該如何計算呢?如果加上元素two呢?這總和還是一樣的嗎?
<script> var arr = new Array(7); arr[0] = 1; arr[1] = 2; arr[2] = 3; arr[3] = 4; console.log(arr); const reducer = (accumulator, currentValue) => accumulator + currentValue; console.log(arr.reduce(reducer)); var nums = new Array(7); nums[0] = 1; nums[1] = 2; nums[2] = 3; nums[3] = 4; nums[4] = "two"; console.log(nums); console.log(nums.reduce(reducer)); </script>
這個小例子的結(jié)果是
我們可以結(jié)合題目觀察一下結(jié)果,1,2,3,4四個元素累加起來的結(jié)果是10,而1,2,3,4和two這五個元素累加的結(jié)果是10two。這表明,在這個方法中,如果出現(xiàn)英文的話,英文是不會被過濾的,會直接與數(shù)字進行運算。
了解這么多之后,我們?nèi)ゾ唧w看看這個方法吧。
reduce() 方法對數(shù)組中的每個元素執(zhí)行一個由我們提供的reducer函數(shù)(升序執(zhí)行),將其結(jié)果匯總為單個返回值。
我們來看看這個方法的語法吧。
數(shù)組名稱.reduce(執(zhí)行的函數(shù)(累計器的返回值,正在處理的元素,當前元素索引,數(shù)組,第一次調(diào)用函數(shù)時的值)
reduce為數(shù)組中的每一個元素依次執(zhí)行callback函數(shù),不包括數(shù)組中被刪除或從未被賦值的元素,接受四個參數(shù):
-
accumulator 累計器
-
currentValue 當前值
-
currentIndex 當前索引
-
array 數(shù)組
注意:如果沒有提供第一次調(diào)用函數(shù)時的值,reduce 會從索引1的地方開始執(zhí)行 callback 方法,跳過第一個索引。如果提供第一次調(diào)用函數(shù)時的值,從索引0開始。
就說到這里了,有需要的可以看:javascript基礎(chǔ)教程