【发布时间】:2021-11-03 09:58:56
【问题描述】:
我有一个像这样的一维数组,其中该数组中的单个对象看起来像这样
[
{
date: "01/01/2020",
type1: 264,
type2: 1937,
type3: 30
},
...
]
我想修改上面的数组,把它转换成下面格式的二维数组
[
[
{
"date": "01/01/2020",
"type": "type1",
"value": 264
},
{
"date": "01/01/2020",
"type": "type2",
"value": 1937
}
.....
],
[
{
"date": "01/01/2020",
"type": "type3",
"value": 30
}
.....
]
]
基本上第一个数组将由 type1 和 type2 值组成,第二个数组将由 type3 值组成。
我对 javascript 很陌生。我已经尝试过使用下面的普通 javascript
const type1 = data.map((e: any) => ({
date: e.date,
type: "type1",
value: e.type1
}));
const type2 = data.map((e: any) => ({
date: e.date,
type: "type2",
value: e.type2
}));
const type3 = data.map((e: any) => ({
date: e.date,
type: "type3",
value: e.type3
}));
const newData = [type1.concat(type2), type3];
有没有更好的办法?
【问题讨论】:
-
您的硬编码解决方案清晰易读,所以我会坚持下去。如果您将来需要更动态的解决方案,您可以重构。将清晰置于聪明之上。
标签: javascript arrays multidimensional-array lodash