0

使用时间缩放 x 轴事件与 d3 中的图表挂钩。用图表解释整个情况毫无意义,但我得出了一个解决方案。为此,我想出了这个解决方案,我对此并不感到困惑。

想象我有一个对象:

{
    "values" : [ [ 1136005200000 , 1271000.0] , [ 1138683600000 , 1271000.0] , [ 1141102800000 , 1271000.0] , [ 1143781200000 , 0] , [ 1146369600000 , 0]
}

可以说它有对:[x,y]。x 看起来像 '1136005200000' 这当然是 UTC 解析日期。

我只需要创建一个虚拟对象。在那个对象中,我需要设置默认日期,比如说 7 天和一些解析的数字。此外,我需要确保上述对中不存在的日期将输入 'y' 作为 0,然后仅插入那些可用的值来完成 7 天的对象。

任何想分享的想法或方法,请继续!

4

1 回答 1

0

例如,您有两个数组:

var arr1 = [{a: 1, b: 34}, {..}..] 最长为 10 var arr2 = [{a:1, b: 0}] 最长为 < 10

经过一番头脑风暴后,我以某种方式设法使用这几行来修复它。

预先计算将“时间”映射到替换“计数”的查找表

var lookup = {}, i, e;
for(i = 0, e = arr2[i]; i < arr2.length; e = arr2[++i])
  lookup[e.time] = e.count;

旋转目标数组并从查找“arr2”中合并“计数”

for(i = 0, e = arr1[i]; i < arr2.length; e = arr2[++i])
  e.count = lookup[e.time] || 0; // Finalizes `arr2` after merging

如果值不存在,则分配零并使用相似的键值对进行合并。

于 2013-09-24T21:00:41.287 回答