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()。