Highchart数组格式

问题描述 投票:0回答:1

我有一个数组,提供如下输出。必须创建一个新的键值对

var obj = [
{
Title: "North America",
Value: 66457682.57055664,
Year: [
{Value: 11061419.089111328, Year: 2017},
{Value: 11039525.639892578, Year: 2018},
{Value: 11040422.410644531, Year: 2019}
]},
{Title: "USA",
Value: 66457682.57055664,
Year: [
{Value: 11454419.089111328, Year: 2017},
{Value: 11456.639892578, Year: 2018},
{Value: 11056562.410644531, Year: 2019}
]}]

我如何在jQuery中以这种格式获取数组?

var year = [2017,2018,2019];

var data = [
{

name:North America
data:[11061419.089111328,11039525.639892578,11056562.410644531]
},
{
name:USA
data:[11061419.034328,13439525.6343478,1167672.4106761]
}]
javascript jquery arrays foreach
1个回答
0
投票

你可以使用map来转换你的数组(没有jQuery)。

var rawData = [{
    Title: "North America",
    Value: 66457682.57055664,
    Year: [{
        Value: 11061419.089111328,
        Year: 2017
      },
      {
        Value: 11039525.639892578,
        Year: 2018
      },
      {
        Value: 11040422.410644531,
        Year: 2019
      }
    ]
  },
  {
    Title: "USA",
    Value: 66457682.57055664,
    Year: [{
        Value: 11454419.089111328,
        Year: 2017
      },
      {
        Value: 11456.639892578,
        Year: 2018
      },
      {
        Value: 11056562.410644531,
        Year: 2019
      }
    ]
  }
];

var years = rawData[0].Year.map(({Year}) => Year);
console.log(years);

var data = rawData.map(({Title, Year}) => ({
  name: Title,
  data: Year.map(y => y.Value)
}));
console.log(data);
© www.soinside.com 2019 - 2024. All rights reserved.