Contents

js做物件reduce運算技巧(map,reduce)

Contents

最近想用 js 去做運算
發現使用 reduce 做物件院算發生問題
有爬文找到方法
這邊簡單做紀錄

1
this.filterData..reduce( (a , b )=> Number(a.total) + Number(b.total) ).toFixed(4);

當初沒有仔細看 reduce 文件
當第一次進去 reduce 代的參數都會帶入 1,2 位置
第一圈可能會沒問題,但是第二圈a不是物件,是第一圈 return 的值
所以程式都會有問題
改要怎麼解決這個問題
有找到兩個解法

functional programming - Javascript reduce on array of objects - Stack Overflow
上手使用 JavaScript 的 Map、Reduce 吧!

reduce 第二個參數,是 intial value,放入的時候第一個a會代 0進去
所以後面不會錯
另一個方法是用 map 來整理資料,在做 reduce
第二種會比較舒服

1
2
3
4
5
this.filterData
  .map(v => Number(v.total))
  .reduce((a, b) => a + b)
  .toFixed(4);
this.filterData.reduce((a, { total }) => a + +total, 0).toFixed(4);

如何在 Array.forEach 的循环里 break

js 中proto和 prototype 的区别和关系? - 知乎