Skip to content

[javascript] map/reduce 用法與解析

Published: at 06:19 AM

在 javascript 中的陣列有兩個函式方法為 map/reduce

map:

不改變目前陣列結構(長度、元素量)的情況下,將其中元素做一些處理或修改後複製至新陣列。

map 方法會針對陣列中的每個元素呼叫一次回呼函式(callback)。

回呼函式(callback)有三個參數

比如說我們想將陣列中的值都改為平方值:

[javascript] var numbers=[1, 3, 5, 7, 9]; var result=numbers.map(function(value, index, array){ return value*value; }); console.log(result); // [1, 9, 25, 49, 81] [/javascript]

reduce:

將目前陣列中的所有元素做累加的動作,例如加總所有元素,將回傳元素之累加總和。

reduce方法會針對陣列中的每個元素呼叫一次回呼函式(callback),並且提供兩個參數

回呼函式(callback)有四個參數

比如我們今天想將陣列中的所有元素加總

[javascript] var numbers=[1, 3, 5, 7, 9]; var result=numbers.reduce(function(previousValue, currentValue, currentIndex, array){ return previousValue+=currentValue; }); console.log(result); // 25 [/javascript]

參考資料:

https://msdn.microsoft.com/zh-tw/library/ff679975(v=vs.94).aspx