javascript - 我如何根据日期(或任何元素相似的元素)在javascript中合并数组中的两个元素
问题描述
我当前的数组看起来像这样
array = [
{
date: '2020/06/12',
hours: 8.4
},
{
date: '2020/06/15',
hours: 4.5
},
{
date: '2020/06/12',
hours: 3.8
},
{
date: '2020/06/16',
hours: 5.5
},
]
所以整个想法是总结和过滤那些重复的日子,就像上面的数组一样,第 12 天是重复的,所以我们对小时求和,结果应该是这样的
array = [
{
date: '2020/06/12',
hours: 12.2
},
{
date: '2020/06/15',
hours: 4.5
},
{
date: '2020/06/16',
hours: 5.5
},
]
解决方案
您可以使用减速器:
const result = array.reduce((acc, cur) => {
const prev = acc.find(elem => elem.date === cur.date);
if(prev) {
prev.hours += cur.hours;
}
else {
acc.push(cur);
}
return acc;
}
, []);
推荐阅读
- python - 如何在熊猫数据框中找到非零元素的行和列
- ios - 如何使用 Firebase Firestore 中的数据填充 TableView?
- javascript - 如何在 react-native 上正确防止 TextInput 模糊?
- java - 为错误 Forbidden 实现自定义异常处理程序
- c++ - 继承、覆盖和虚函数,避免重复代码
- javascript - 使用三个级别的自定义排序标准对对象数组进行排序
- sql - 在 SQL 中选择 MAX
- installation - gpg: 没有找到有效的 OpenPGP 数据。安装jitsi
- powerbi - Dax Measure - 计算员工行具有特定值的次数
- javascript - 一个简单的 JS 函数问题 -> 创建一个只返回偶数的函数