Javascript从对象中删除对象,然后重新映射密钥

时间:2018-04-20 20:36:03

标签: javascript object canvasjs

基本上,我正在制作一个每分钟更新一次的图表。我想保留我的对象的值只包含一定数量的属性(一小时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/

0 个答案:

没有答案