【问题标题】:javascript - Compare and match lengths of two array having with similiar key/value pairsjavascript - 比较和匹配具有相似键/值对的两个数组的长度
【发布时间】:2013-09-20 15:31:50
【问题描述】:

一直在使用时间缩放 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 天的对象。

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

【问题讨论】:

标签: javascript arrays sorting d3.js


【解决方案1】:

例如你有两个数组:

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

经过一番头脑风暴后,我设法用这几行代码修复了它。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-27
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多