js数组处理--对象数组合并相同key的data

源代码:

 1 /*
 2      对象数组合并相同key的data
 3        参数:1.待操作数组,2.参考key,3.待合并key
 4     */
 5     mergeKeyArr(arr, key1, key2) {
 6         arr = this.sortArr(arr, true, 1, key1)
 7         let newArr = []
 8         let tempValue = 0 // 临时存储数据
 9         let curName = arr[0][key1]
10         // 合并相同curName的数据
11         arr.forEach((item, index) => {
12             if (item[key1] === curName) {
13                 tempValue += item[key2]
14             } else {
15                 let obj = {
16                     ...arr[index - 1]
17                 }
18                 obj[key2] = tempValue
19                 newArr.push(obj)
20                 curName = item[key1]
21                 tempValue = item[key2]
22             }
23         })
24         let obj = {
25             ...arr[arr.length - 1]
26         }
27         obj[key2] = tempValue
28         newArr.push(obj)
29         return newArr
30     },

参数解析:见代码注释

左手键盘安天下,右手鼠标定乾坤
原文地址:https://www.cnblogs.com/alt-fsh/p/14431648.html