iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 17
1

javascript reduce() 使用方法
上次練習了 airbnb 推薦的 map() 語法,我們再來複習一次 ESLint airbnb 的規則怎麼說的:

11.1 不要使用迭代器。更好的做法是使用 JavaScript 的高階函式,像是 map()reduce(),替代如for-of 的迴圈語法。

今天就是要來練習 reduce()的用法!這個方法可以讓陣列中的每個元素與回傳的值再次作運算,將陣列化為單一值,常常拿來應用於陣列中每個元素的「累加」或是「比較」,相當ㄉ實用!


使用語法

arr.reduce(function(accumulator,currentValue,currentIndex,array) {
  //
});

每個元素都會呼叫回調函式(callback),可傳入四個參數:

accumulator:累加器
currentValue:當前元素
currentIndex:當前元素的索引(選擇性)
array: 呼叫 reduce() 方法的陣列(選擇性)

設定初始值:

initialValue:第一次呼叫時要傳入的累加器初始值。(選擇性)
若沒有提供初始值,則原陣列的第一個元素將會被當作初始的累加器。

說明如圖:
javascript 陣列處理 reduce() 使用方法說明


晚點補上範例,我吃ㄍ宵夜><

參考文章
MDN
卡斯伯:JavaScript 陣列處理方法


上一篇
Day16【ES6 小筆記】// javascript 怎麼下個好註解?
下一篇
Day18【ES6 小筆記】比較值:== vs. === vs. Object.is() 差在哪呢?
系列文
透過 ESLint 練習 JavaScript ES630

2 則留言

0
hannahpun
iT邦新手 5 級 ‧ 2019-09-19 02:49:41

reduce 真的很好用 ! 之前有人用做漢堡當舉例我覺得很受用
給你參考
搭配圖片
https://www.hannahpun.me/wp-content/uploads/2016/09/functional_map.png

var 處理過的食材 = [麵包, 小黃瓜, 青椒].map( function( i ){
     return 把i切片
});
//  處理過的食材 = [切片麵包, 切片小黃瓜, 切片青椒]
 
var 大亨堡 =  處理過的食材.reduce( function( a,b ){
     return a + b;
})
//  大亨堡 = 切片麵包 + 切片小黃瓜 + 切片青椒
0

範例好像跟宵夜一起被吃掉了XDD

我要留言

立即登入留言