基本上,我正在制作一个每分钟更新一次的图表。我想保留我的对象的值只包含一定数量的属性(一小时60,小时120等)。一切都在使用canvas.js,但是如果我尝试从对象中删除第一个项目,一旦所有内容重新初始化,key [0]中的对象现在都会丢失,这会破坏所有内容。试图找出从我的对象内部删除和对象的最佳方法,然后从0,1,2,3等开始正确键入所有内容。
一些代码......
这是对象的片段......
dataPoints = {
0:{x: Fri Apr 20 2018 14:14:00 GMT-0500 (Central Daylight Time), y: 150.64}
1:{x: Fri Apr 20 2018 14:15:00 GMT-0500 (Central Daylight Time), y: 150.68}
2:{x: Fri Apr 20 2018 14:16:00 GMT-0500 (Central Daylight Time), y: 150.7}
3:{x: Fri Apr 20 2018 14:17:00 GMT-0500 (Central Daylight Time), y: 150.71}
4:{x: Fri Apr 20 2018 14:18:00 GMT-0500 (Central Daylight Time), y: 150.75}
5:{x: Fri Apr 20 2018 14:19:00 GMT-0500 (Central Daylight Time), y: 150.91}
}
dataPoints.push({x: getTime, y: data.Data[1].close}); // pushing new datapoint...
if (dataPoints.length > 60) {
delete dataPoints[0]; // remove oldest datapoint
}
一切都按预期工作,但一旦添加新点并删除旧点,它就会出现如下:
dataPoints = {
1:{x: Fri Apr 20 2018 14:15:00 GMT-0500 (Central Daylight Time), y: 150.68}
2:{x: Fri Apr 20 2018 14:16:00 GMT-0500 (Central Daylight Time), y: 150.7}
3:{x: Fri Apr 20 2018 14:17:00 GMT-0500 (Central Daylight Time), y: 150.71}
4:{x: Fri Apr 20 2018 14:18:00 GMT-0500 (Central Daylight Time), y: 150.75}
5:{x: Fri Apr 20 2018 14:19:00 GMT-0500 (Central Daylight Time), y: 150.91}
}
没有任何索引[0] canvasJS错误。不幸的是,这已经成为canvasJS的一个对象,将其更改为数组并不是一个理想的解决方案,所以寻找一些如何做到这一点并基本上移动对象块的灵感。
JS小提琴 https://jsfiddle.net/0s4t9eox/14/