JavaScript Array reduceRight()

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

語法:

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

用法:

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

// 由右至左將所有的元素值加總,最後返回結果 6
console.log(sum);
var a = ['1', '2', '3', '4', '5']; 

var left  = a.reduce(function(prev, cur) {
    return prev + cur;
}); 

var right = a.reduceRight(function(prev, cur) {
    return prev + cur;
}); 

// 輸出 "12345"
console.log(left);
// 輸出 "54321"
console.log(right);

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