2022年8月22日 星期一

關於 Array.reduce()

 關於 Array.reduce() 

前言

  最近看到了 Array.reduce() ,抽空做個學習,在此做個紀錄。


內容

  Array.reduce() 會逐一取得每個陣列元素並做處理,但這跟 Array.forEach() 不是一樣嗎?先看看範例

const array1 = [1, 2, 3, 4];

//
const initialValue = 0;
const sumWithInitial = array1.reduce(
  (previousValue, currentValue) => previousValue + currentValue,
  initialValue
);

console.log(`sum:${sumWithInitial}`);//10
//
let sumByForEach = 0;
array1.forEach( function(value) {
  sumByForEach += value;
});

console.log(`sum use foreach:${sumByForEach}`);//10


Array..reduce() 的引數有兩個,第一個引數是個 funciton ,用來處理每個元素,但它的引數是先前的元素與現在的元素,第二個引數是初始值,最後範例用  Array.forEach() 來做一樣的是來比較差異性,差異是 Array.forEach() 的總和值是在外面給的,但 Array..reduce() 可以不用給,會自動產生,並且可以用 return 值來接收這個數值,差異就是少了一行來產生這個數值。


參考資料

[ developer.mozilla.org ] Array.prototype.reduce()

沒有留言:

張貼留言