【发布时间】:2022-11-17 18:24:37
【问题描述】:
我有一个要转换的对象数组。它包含如下嵌套对象结构:
[
{
geography: 'Austia',
product: 'RTD Coffee',
dataType: 'Off-Trade rsp (curr/con, local)',
timeSeries: [
{
year: 2017,
value: 0.148891823777856,
highlight: 1,
},
{
year: 2018,
value: 0.148965642232877,
highlight: 1,
},
{
year: 2019,
value: 0.149039460687898,
highlight: 1,
},
{
year: 2020,
value: 0.149113279142919,
highlight: 1,
},
{
year: 2021,
value: 0.149187097597941,
highlight: 1,
},
{
year: 2022,
value: 0.149260916052962,
highlight: 1,
},
],
},...
];
我想将其转换为以下模式,其中提取 TimeSeries 数组对象属性并将其映射到顶层,如下所示:
[
{
geography: 'Austria',
product: 'RTD Coffee',
dataType: 'Off-Trade rsp (curr/con, local)',
2017: 0.148891823777856,
2018: 0.148965642232877,
2019: 0.149039460687898,
2020: 0.149113279142919,
2021: 0.149187097597941,
2022: 0.149260916052962,
},
]
我该怎么做?
【问题讨论】:
-
你尝试了什么?
-
我尝试使用 flatMap 来展平 json,但它似乎没有用。
-
这显然与扁平化无关,因为您将一个值用作新对象的键,将另一个值用作值
-
您不希望
flatMap在这里,您没有嵌套数组。您想要将数组转换为对象。您可以查找reduce或Object.fromEntries以生成该对象。至于外层数组,map就够了
标签: javascript arrays typescript