для динамической передачи данных, получаемых из источника данных, вам необходимо поддерживать по три массива для каждого бара.
то есть один для defndTarget , target и totalDisplacement ..
По мере того, как вы получаете объект из источника данных, вам необходимо разделить количество объектов. Для этого вы можете использовать следующую строку:
this.totalRecords=Object.keys(this.data)
Затем предположим, что вам нужно сгенерировать массив для defenderTarget . Вам необходимо использовать следующий лог c:
this.totalRecords.forEach((record)=>{
this.defendTargetData.push(record.defendTarget)
})
изменить: для получения желаемого количества баров вам необходимо использовать следующий код:
this.totalBars = Object.keys(this.totalRecords[0])
И теперь вы можно обновить код для набора данных как:
this.totalBars.forEach((bar)={
currentDataSet = {label:bar,backgroundColor:
"#fd3612",data:[]};
this.totalRecords.forEach((record)=>{
currentDataSet.data.push(record.bar)
})
this.dataSet.push(currentDataSet)
})
Я надеюсь, что это будет соответствовать вашим требованиям.