- 提取外层关键数据(如果需要),将双层数组扁平化为单层
- 单层再做转换,很容易得到O(n)的实现
const infos = [
{
time: '2022-02-21',
data: [{
Duration: 22,
Spec: "h264"
},
{
Duration: 33,
Spec: "h265_hd"
},
{
Duration: 44,
Spec: "h264_4k"
}]
},
{
time: '2022-02-22',
data: [{
Duration: 55,
Spec: "h264"
},
{
Duration: 66,
Spec: "h265_hd"
},
{
Duration: 77,
Spec: "h264_4k"
}]
}
]
const _map = list => list
.reduce((prev, cur) => prev.data.concat(cur.data))
.reduce((total, { Duration, Spec }) => Object.assign(total, { [Spec]: (total[Spec] || []).concat(Duration) }), {})
const _list = map => Object.entries(map).map(([name, data]) => ({ name, data }))
_list(_map(infos))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2020-02-23 ES5 寄生式继承
2020-02-23 JavaScript ES5类 原型 原型链 组合、原型、寄生式继承
2019-02-23 SpringMVC架构&组件&执行流程