如何合并JavaScript数组对象中相同日期对应的amount数值
实现思路
- 取出原对象内的
date、amount两个数组 - 用临时哈希表存储每个日期对应的累计金额
- 同步遍历两个数组完成金额累加
- 提取哈希表的键值对分别作为最终的日期、金额数组
实现代码
let test = [ { date: ["2021-11-09", "2021-11-09", "2021-11-10", "2021-11-10"], amount: [0.5, 0.5, 1, 2], }]; // 取出原始数据 const { date, amount } = test[0]; const dateAmountMap = {}; // 遍历累加相同日期的金额 for (let i = 0; i < date.length; i++) { const currentDate = date[i]; dateAmountMap[currentDate] = (dateAmountMap[currentDate] || 0) + amount[i]; } // 组装为要求的输出格式 const result = { date: Object.keys(dateAmountMap), amount: Object.values(dateAmountMap) }; console.log(result);
执行后输出的result就是要求的格式:
{ date: [ '2021-11-09', '2021-11-10' ], amount: [ 1, 3 ] }
内容的提问来源于stack exchange,提问作者fernon
相关产品推荐
相关产品推荐

