Сделайте JSON в правильном формате для Highcharts - PullRequest
0 голосов
/ 12 мая 2018

Ниже приведены мои данные JSON, возвращаемые Ответом:

[{"id": 1, "name": "AAA", "value": 5}, {"id": 1, "name": "BBB", "value": 8}, {"id": 1, "name": "CCC", "value": 9}, {"id": 1, "name": "AAA "," value ": 15}, {" id ": 1," name ":" BBB "," value ": 3}, {" id ": 1," name ":" CCC "," value ": 5}, {"id": 1, "name": "AAA", "value": 3},, {"id": 1, "name": "BBB", "value": 10}, {"id": 1, "name": "CCC", "value": 11}]

Пожалуйста, как мне получить правильный формат для рисования диаграмм (Highcharts), используя jquery или javascript, как показано ниже:

series: [{
    name: 'AAA',
    data: [5, 15, 3]

}, {
    name: 'BBB',
    data: [8, 3, 10]

}, {
    name: 'CCC',
    data: 9, 5, 11]

}]

1 Ответ

0 голосов
/ 12 мая 2018

Сначала создайте временный объект, где вы сохраняете каждую группу с помощью name, а затем преобразуете этот объект в массив с помощью map():

const data = [{"id":1,"name":"AAA","value":5}, {"id":1,"name":"BBB","value":8}, {"id":1,"name":"CCC","value":9}, {"id":1,"name":"AAA","value":15}, {"id":1,"name":"BBB","value":3}, {"id":1,"name":"CCC","value":5}, {"id":1,"name":"AAA","value":3}, , {"id":1,"name":"BBB","value":10}, {"id":1,"name":"CCC","value":11}];

const temp = {};
data.forEach(row => {
  if (!temp[row.name]) {
    temp[row.name] = { name: row.name, data: [] };
  }
  
  temp[row.name].data.push(row.value);
});

const series = {
  series: Object.keys(temp).map(name => ({ name, data: temp[name].data })),
};

console.log(series);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...