Преобразование вложенных JSON массивов в диаграмму. js вход - PullRequest
0 голосов
/ 30 марта 2020

Я не могу правильно расположить свои данные для React-Chart. js В настоящее время у меня есть все данные в одном массиве:

[[Array(9)], [Array(9)],[Array(9)], [Array(9)]]

Редактировать: каждый из 4 массивов имеет 9 пары [ключ, значение] в их собственном массиве:

 (9) [Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2)]
 (9) [Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2)]
 (9) [Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2)]
 (9) [Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2)]

В будущем я хотел бы иметь возможность добавлять больше массивов.

Я хотел бы использовать каждый массив как свой собственный серия с названием из другого источника:

 {
    label: props.name[0],
    data: [
      aminos[0][0],
      aminos[0][1],
      aminos[0][2],
      aminos[0][3],
      aminos[0][4],
      aminos[0][5],
      aminos[0][6]
      etc...
    ]
 },
 {
    label: props.name[1],
    data: [
      aminos[1][0],
      aminos[1][1],
      aminos[1][2],
      aminos[1][3],
      aminos[1][4],
      aminos[1][5],
      aminos[1][6],
      etc...
    ]
 },
...

Надеюсь, что имеет смысл, заранее спасибо!

1 Ответ

1 голос
/ 30 марта 2020

Следующий фрагмент должен быть полезен, я не уверен в структуре вашего исходного массива, поэтому обобщил это

//sample data
var recArray = [ 
  [ 
    [ 'key1','value1.1'], 
    ['key2','value2.1'],
    ['key9','value9.1']
  ],
  [ 
    [ 'key1','value1.2'], 
    ['key2','value2.2'],
    ['key9','value9.2']
  ]
];

//result object
lblGroupedRecords = {}

//flattens the nested array
//choose nested level based on your level of nesting
flattenedRecords = recArray.flat(2);

var handle=0;
while(handle<flattenedRecords.length) {
  var key = flattenedRecords[handle++];
  var value = flattenedRecords[handle++];
  (lblGroupedRecords[key] = lblGroupedRecords[key] || []).push(value);
}

console.log(lblGroupedRecords)
...