我不是 JavaScript 开发人员,我想要一些关于如何将对象数组(从 WebAPI 调用获取)转换为适合 Chart.JS 的数组的指针。
到目前为止,我的代码(有效)如下所示:
<canvas id="line-chart" width="800" height="450"></canvas>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js"></script>
<script>
// webapi call returns an object which looks like this
var raw = {
message: "Success: 3 entries",
didError: false,
errorMessage: null,
model:
[
{ time: "2019-09-26T13:19:00", value1: 1, value2: 2, value3: 3, value4: 4 },
{ time: "2019-09-26T13:20:00", value1: 22, value2: 21, value3: 20, value4: 19 },
{ time: "2019-09-26T13:21:00", value1: 10, value2: 20, value3: 40, value4: 70 }
]
};
// chart.js needs the data to look like this
var data = {
labels: ["19:00", "20:00", "20:01"],
datasets: [
{
data: [1, 22, 10],
label: "Value 1",
borderColor: "red",
fill: false
},
{
data: [2, 21, 20],
label: "Value 2",
borderColor: "blue",
fill: false
},
{
data: [3, 20, 40],
label: "Value 3",
borderColor: "green",
fill: false
},
{
data: [4, 19, 70],
label: "Value 4",
borderColor: "orange",
fill: false
}
]
};
var options = { title: { display: true, text: 'stuff' } };
var chart = new Chart(document.getElementById("line-chart"), { type: 'line', data: data, options: options });
</script>
如何将我的“原始”数据转换为 Chart.JS 期望的格式?我可以让 webAPI(我写的)返回任何东西,但不认为返回 chart.js 格式数组是要走的路。它目前返回 1440 个对象 - 而不是 3 个!
我不懂js,所以我不知道如何做循环和类型转换,所以任何指针都感激不尽。如果可能的话,我宁愿不包括额外的包。