JavaScript reduce()的使用

語法

arr.reduce(callback(accumulator, currentValue, index, array), initialValue)

參數

callback

執行數組中每個值 (如果沒有提供 initialValue則第一個值除外)的函數,包含四個參數:

  accumulator

   累計器累計回調的返回值; 它是上一次調用回調時返回的累積值,或initialValue(見於下方)。

 currentValue

   數組中正在處理的元素。

  index

   數組中正在處理的當前元素的索引。 如果提供了initialValue,則起始索引號為0,否則從索引1起始。

 array

   調用reduce()的數組

initialValue

作為第一次調用 callback函數時的第一個參數的值。 如果沒有提供初始值,則將使用數組中的第一個元素。 在沒有初始值的空數組上調用 reduce 將報錯。

返回值

函數累計處理的結果

描述

reduce為數組中的每一個元素依次執行callback函數,不包括數組中被刪除或從未被賦值的元素,接受四個參數:

  • accumulator 累計器
  • currentValue 當前值
  • currentIndex 當前索引
  • array 數組

回調函數第一次執行時,accumulator currentValue的取值有兩種情況:如果調用reduce()時提供了initialValue,accumulator取值為initialValue,currentValue取數組中的第一個值;如果沒有提供 initialValue,那麼accumulator取數組中的第一個值,currentValue取數組中的第二個值。

注意:如果沒有提供initialValue,reduce 會從索引1的地方開始執行 callback 方法,跳過第一個索引。如果提供initialValue,從索引0開始。