ChartJS-如何为数据集提供对象数组

时间:2019-04-12 12:25:34

标签: javascript ecmascript-6 chart.js

我有一个对象数组,想将其提供给数据集变量,但是我不确定如何...

如果我执行以下操作,它将起作用,但是我似乎无法编写可以在1行中完成此操作的循环。

new Chart(canvas, {
type: 'bar',
data: {
    labels: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],
    datasets: [

        chartData.datasets[0],
        chartData.datasets[1],
        chartData.datasets[2],
        chartData.datasets[3],
        chartData.datasets[4],
        chartData.datasets[5],
        chartData.datasets[6],
        chartData.datasets[7],
        chartData.datasets[8],
        chartData.datasets[9],
        chartData.datasets[10],
        chartData.datasets[11],
        chartData.datasets[12],
        chartData.datasets[13],
        chartData.datasets[14],
        chartData.datasets[15],
        chartData.datasets[16],
        chartData.datasets[17],
        chartData.datasets[18],
        chartData.datasets[19],
        chartData.datasets[20],
        chartData.datasets[21],
        chartData.datasets[22],
        chartData.datasets[23]
    ]
},

enter image description here

2 个答案:

答案 0 :(得分:0)

尝试:

   new Chart(canvas, {
    type: 'bar',
    data: {
        labels: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],

        // chartData.datasets is an array
        datasets: chartData.datasets,

    },

答案 1 :(得分:0)

胡安的答案将满足您的要求。如果出于某种原因,您只希望0到23,则可以传递chartData.datasets.slice(0, 24)而不是chartData.datasets

编辑

let data = [];
chartData.datasets.forEach(a => data = data.concat(a));

并通过data

这将连接chartData.datasets

中的每个条目