问题描述
const data = [
{
month:'2019-01',
list:[
{name:'语文',share:98},
{name:'数学',share:89},
{name:'其它',share:45},
]
},
{
month:'2019-02',
list:[
{name:'外语',share:34},
{name:'数学',share:56},
{name:'其它',share:33},
]
}
]
转换成
[
['month','2019-01','2019-02'],
['语文',98,0],
['数学',89,56],
['外语',0,34],
['其它',45,33],
]
问题出现的环境背景及自己尝试过哪些方法
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
我考虑先把所有科目都找出来
// 取出所有类目
const ALL = [
...new Set(
monthList &&
monthList
.map(i => i.list)
.flat(1)
.map(j => j.name)
),
];
想的是
ALL.map()结果发现至少要map三层 复杂度很高
有没有算法简单点的处理方式
写完发现这个解决方式复杂度还是挺高的,应该还有更优解
再提供一个解决方式,先提取
names
,逻辑简单得多