Как я могу «разложить» мои JSON данные в d3. js? - PullRequest
0 голосов
/ 03 августа 2020

У меня есть данные в массиве JSON, который выглядит следующим образом:

[{"TEACHER":3.7},{"STUDENT":1.9}]

Мой желаемый результат - массив JSON, который выглядит следующим образом:

var statements = [
  {
    name: "TEACHER",
    value: 3.7
  },
  {
    name: "STUDENT",
    value: 1.9
  }
];

Как я могу «разложить» данные, которые мне нужны, чтобы добавить метки переменных, как я хочу?

Ответы [ 2 ]

1 голос
/ 03 августа 2020

Это то, что я придумал. Хотя может быть более элегантный способ сделать это.

var x = [{"TEACHER":3.7},{"STUDENT":1.9}];

console.log(unstack(x));

function unstack(stacked){
    var unstacked = [];
    stacked.forEach((element) => {
      unstacked.push({
            name: Object.keys(element)[0],
            value: Object.values(element)[0]
        });
    });
    return unstacked;
}
1 голос
/ 03 августа 2020

Это единственный ключ, который есть у вашего исходного объекта? В этом случае вы можете использовать единственный элемент Object.keys () или Object.entries () return. Если есть другие атрибуты, вы можете найти совпадение в ключе и обработать его соответствующим образом.

const input = [{"TEACHER":3.7},{"STUDENT":1.9}];
const output = [];

input.forEach(item => {
    const key = Object.keys(item)[0];

    output.push({name: key, value: item[key]});
});

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