forEach、map、reduce比較

南風一濺發表於2018-12-10

forEach、map、reduce都是Array提供的遍歷陣列的方法,很像,區別也很明顯

forEach


var arr = [2, 3, 4, 1]

var res = arr.forEach(function(ele){

  console.log(ele * 2)

})

// res為undefined

複製程式碼

forEach無返回值。

按順序跟目標做點事情,不管結果。

map


var arr = [2, 3, 4, 1]

var res = arr.map(function(ele){

  return ele * 2

})

// res為[4, 6, 8, 2]

複製程式碼

map返回一個新陣列,每個元素都是回撥函式的結果。

按順序跟目標做點事情,並得到對應順序的結果。

reduce


var arr = [2, 3, 4, 1]

var res = arr.reduce(function(accumulator, currentValue){

  console.log(accumulator, currentValue)

  return accumulator + currentValue

})

// res為10

複製程式碼

reduce返回函式累計處理的結果。

按順序跟目標做點事情,統計結果。 三者都不會改變原陣列

相關文章