最近想用 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 | this.filterData |