本文主要是介绍js 格式化双层数组使得时间复杂度为O(n)的尝试,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
格式化双层数组使得时间复杂度为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))
这篇关于js 格式化双层数组使得时间复杂度为O(n)的尝试的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!