为了账号安全,请及时绑定邮箱和手机立即绑定

Chart.js,返回一个“日期”数组来绘制折线图

Chart.js,返回一个“日期”数组来绘制折线图

哔哔one 2022-12-22 11:39:11
在数据库中,我有 3 个数据,我通过 Rest-API 将它们发送到前端 Angular。这很好用。在浏览器控制台中,您可以看到我通过 Rest-API 通过 node.js 获得的所有三个数据集: 它在浏览器控制台中的外观浏览器控制台中的结果如下所示:0:device_id: 2885679list: Array(1)0:dt: 1596608643main:humidity: 10pressure: 7.86temp: 120.052temp_max: 40.052temp_min: 20.052__proto__: Object__proto__: Objectlength: 1__proto__: Array(0)message: "1"__v: 0_id: "5f2a63857ce17d64d49465a4"在 typescript 组件 xy.component.ts 中,我的代码如下所示:export class ContactsComponent {  chart: any = [];  constructor(private contactService: ContactService) { }  ngOnInit() {    this.contactService.getContacts()      .subscribe((res: any[]) => {        console.log(res);        for (let i = 0; i < res.length; i++) {          let temp_max = res[i]['list'].map(res => res.main.temp_max);          let temp_min = res[i]['list'].map(res => res.main.temp_min);          let alldates = res[i]['list'].map(res => res.dt)          console.log(alldates)          let deviceData = []          alldates.forEach((res) => {            let jsdate = new Date(res * 1000)            deviceData.push(jsdate.toLocaleTimeString('en', { year: 'numeric', month: 'short', day: 'numeric' }))          })          console.log(deviceData)                    this.chart = new Chart('canvas', {            type: 'line',            data: {              labels: deviceData,              datasets: [{                data: temp_max,                borderColor: '#3cba9f',                fill: false              }, {                data: temp_min,                borderColor: '#ffcc00',                fill: false              },              ]            },为什么console.log(deviceData)只返回迭代的最后一个值?我想返回所有值console.log(devicedata)以绘制基于 3 个时间戳的图形。在这里,当我只返回 1 个时间戳时。它以某种方式覆盖了 deviceData.push - Methode 的值。我的目标是绘制我拥有的所有数据点(请参阅浏览器控制台的屏幕截图)。
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

似乎每个对象res都有一个只有一个项目的列表。

(res[i]['list']是一个长度为 1 的数组)


尝试记录这个:(

这会获取每个项目的所有值并将它们放在一个列表中)


let allvalues = [];

for (const item of res) {

  for (const measurement of item.list) {

    allvalues.push(measurement)

  }

}


console.log(allvalues);


查看完整回答
反对 回复 2022-12-22
  • 1 回答
  • 0 关注
  • 92 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号