Вывести JSON-массив из Query | NodeJS - PullRequest
0 голосов
/ 15 апреля 2019

Я использую Angular и NodeJS для создания диаграммы (линия ngx-d3), я извлекаю информацию из API-интерфейса NodeJS, и результат запроса следующий

`[
    {
        "1": 15147,
        "2": 37079,
        "3": 28077,
        "4": 20281,
        "5": 18246,
        "name": "DEV--ACCEPTED"
    },
    {
        "1": 7,
        "2": 36,
        "3": 30,
        "4": 21,
        "5": 164,
        "name": "DEV--WAITING"
    },
    {
        "1": 6765,
        "2": 20423,
        "3": 14842,
        "4": 10339,
        "name": "DEV--REJECTED"
    }
]`

Но вывод, который я ищу -

`[{name: 'DEV-REJECTED',
      series: [
        {
          name: '1',
          value: 6765,
        },
        {
          name: '2',
          value: 20423,
        },
      ],
    },
    {
      name: 'DEV--WAITING',
      series: [
        {
          name: '1',
          value: 7,
        },
        {
          name: '2',
          value: 36,
        },{
          name: '3',
          value: 30,
        },
      ],
    }
   }]`

Любые идеи о том, как получить этот результат?

Ответы [ 2 ]

0 голосов
/ 15 апреля 2019
const finalData = data.map(entry => {
    return {
        name: entry.name,
        series: Object.keys(entry).filter(key => key !== "name").map(key => {
            // Filtered out the entries where the key is 'name'
            return {
                name: key,
                value: entry[key],
            }
        })
    }
});
0 голосов
/ 15 апреля 2019

Вы можете изменить свой JSON через это

const final_result =[]; // final out put
data.forEach( v => { // iterate your data
  let d = {series: []}; // decorate your object;
  d.name = v.name;
  delete v.name; // delete name as assigned in other object
  for (let k in v){ // iterate your object
    d.series.push({name:k, value:v[k]});
  }
  final_result.push(d);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...