我正在开发应用程序,希望显示3列
date, min and zone
我得到了一个对象数组
[
{date: 2022-12-28T07:37:16.859Z, min: 2, zone: zone A},
{date: 2022-12-28T07:38:13.859Z, min: 1, zone: zone B},
{date: 2022-12-28T07:36:15.859Z, min: 3, zone: zone C},
{date: 2022-12-31T07:37:16.859Z, min: 2, zone: zone E}
{date: 2022-12-25T07:37:16.859Z, min: 4, zone: zone D}
]
我想投保以下条款:
1.如果日期重复,则应仅重复一次。
1.具有相同日期的分钟数应为加法,如(2+1+3=6)
1.具有相同日期的区域应连续(区域A、区域B、区域C)
并且想要如下的结果:
[
{date: 2022-12-28T07:37:16.859Z, min: 6, zone: zone A, zone B, zone C},
{date: 2022-12-31T07:37:16.859Z, min: 2, zone: zone E}
{date: 2022-12-25T07:37:16.859Z, min: 4, zone: zone D}
]
任何帮助我都感激不尽。
4条答案
按热度按时间wztqucjr1#
过滤掉具有重复日期的元素,当您删除它们时,将min/zone值添加/concat到剩余对象的相应值中。
How to remove duplicates
yr9zkbsy2#
首先,你需要根据代码中的管理条件来格式化日期
uemypmqf3#
所需结果需要按
date
分组(仅限日期)。可以使用
.reduce()
按date
对数据进行分组。1.当组中找不到
date
元素时,需要创建一个k
和v
对象,然后将其压入累加器(acc
)数组。1.当现有组中存在与
date
匹配的元素时,需要更新min
和zone
的acc
数组中的现有元素。最后,需要从
groupedDate
数组中获取所有v
值。在TypeScriptPlayground演示
moiiocjp4#
可以使用Array.map()方法创建一个新的对象数组,该数组将JavaScript Date对象与其他属性组合在一起。