JavaScript Array reduce()

陣列 (array) 的 reduce() 方法會對陣列中的每一個元素,由左至右傳入指定的函數,最後返回一個累加 (accumulator) 的值。

語法:

ary.reduce(callback[,initialValue])
  • 參數 callback 是一個函數,傳入的參數分別是:
    • 參數 accumulator 表示目前的累加值,一開始的預設值是 initialValue,接下來的 accumulator 值就是每一次函數執行後返回的結果
    • 參數 currentValue 表示目前執行到的元素值
    • 參數 currentIndex 表示目前執行到的元素的索引值
    • 參數 array 表示陣列本身
  • 參數 initialValue 表示初始的累加值
  • reduce() 方法會返回所有元素最後累加的結果

用法:

var sum = [0, 1, 2, 3].reduce(function(a, b) {
    return a + b;
}, 0);

// 將所有的元素值加總,最後返回結果 6
console.log(sum);
var ary = ['Welcome', ' ', 'fooish', '.', 'com'];

var concatStr = ary.reduce(function(str, el) {
    return str + el;
}, '');

// 輸出 'Welcome fooish.com'
console.log(concatStr);

相對的方法還有 reduceRight()

IE 從 IE9 開始才有支援 reduce()。