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 },
参数解析:见代码注释
左手键盘安天下,右手鼠标定乾坤