reduce() or reduceRight()
方法會依據指定的函式,從左到右或從右到左,結合陣列中的元素,最後回傳一個值。
方法將一個累加器及陣列中每項元素(由左至右)傳入回呼函式,將陣列化為單一值。
類似foreach +暫存
根據取出每個值與暫存做運算,回傳結果
ex:把書及價錢加到暫存裡=>總價
array.reduce(function(accumulator, currentValue, currentIndex, array){},initial Value)
accumulator:累加器,為前次函式所回傳的先前值或者是初始值。
currentValue:目前處理元素的值。
currentIndex:目前處理元素的索引值。有給定初始值,由0開始,無初始值則由1開始。
initial Value:初始值。
let testArray = [2, 3, 4, 5, 6];
let reduceArray = testArray.reduce(function(accumulator, currentValue){
return accumulator + currentValue;
});
console.log(reduceArray); //20
const array1 = [1, 2, 3, 4];
const reducer = (accumulator, currentValue) => accumulator + currentValue;
// 1 + 2 + 3 + 4
console.log(array1.reduce(reducer));
// expected output: 10
// 5 + 1 + 2 + 3 + 4
console.log(array1.reduce(reducer, 5));
// expected output: 15