如何有效地将这个大型Javascript关联数组转换为另一种形式?
我正在开发一个数据处理应用程序,在通过数据解析后,数据被组织成一个关联数组:如何有效地将这个大型Javascript关联数组转换为另一种形式?,javascript,arrays,algorithm,data-structures,Javascript,Arrays,Algorithm,Data Structures,我正在开发一个数据处理应用程序,在通过数据解析后,数据被组织成一个关联数组: sensorNumber, timeOfReading, Count, Value 2, 32242424, 2442, 42425.545545 ... 4, 4343435, 2442, 42425.545545 ... 它是一个非常简单的4列数据结构,但是在某些极端情况下,它可以获得相当大的数据行,最多可达100万行 现在,我想将所有这些数据点添加到一个允许缩放功能的图表中(这意味着没有跳过点) 图表需要在单独
sensorNumber, timeOfReading, Count, Value
2, 32242424, 2442, 42425.545545
...
4, 4343435, 2442, 42425.545545
...
它是一个非常简单的4列数据结构,但是在某些极端情况下,它可以获得相当大的数据行,最多可达100万行
现在,我想将所有这些数据点添加到一个允许缩放功能的图表中(这意味着没有跳过点)
图表需要在单独的系列中分离每个“sensorNumber”列数据,此外,还需要在附加的子系列中进一步分离每个“计数”和“值”
最有效的图表数据插入方法使用如下数据结构:
time, Series1, Series2, Series3...
基本上,每个“X”值都需要添加所有“Y”值,这使得插入比一次绘制每个X和Y更快
这意味着我需要如下所示的数据结构:
time, Series1, Series2, Series3...
读取时间、计数(传感器1)、值(传感器1)。。。计数(传感器3)、值(传感器3).
解决方案#1:
1) 按“读取时间”属性对所有行进行排序2) 创建新的数据结构,并为每个传感器属性的每个“计数”和“值”添加列,以填充该行 解决方案#2: 使用存储数组的字典。将每个唯一的“读取时间”属性设置为键,并为每个“计数”和“传感器”创建多列数组 解决方案#2似乎效率更高,因为它不需要任何排序
然而,我想知道是否有任何人都能想到的更优雅的解决方案?考虑到数字不是我所能想到的,我不会把阅读时间当作地图上的一个键。这个数据可以在JS脚本收到之前进行排序吗?对我来说,解决方案2在一开始可能更好,但需要更多的代码并增加复杂性,因为解决方案1是直截了当的,更容易执行。这取决于你,但我认为“1”更可取。@Jacque迷人-我不敢相信我甚至从未听说过。数据可以按不同的方式排序,但这意味着改变程序的许多其他部分——如果没有有效的解决方案,很可能会归结到这一点。@JacqueGoupil:不确定“未精确存储”是什么意思。存储的每个数字都非常精确。当然,有些数字不能用计算机来表示,有些数字不能精确地表示为双精度。然而,由于时间戳通常存储为(32位)整数,因此在JS中没有问题(它的双精度数字格式可以精确存储高达52位的整数)。@Bergi我想他的意思是,如果我的秒是非常大的数字,我应该注意这一点。我的秒值远低于该阈值,因此可以。文章中写道:“9007199254740993(即2^53 1)是Javascript中最小的不可表示整数。换句话说,您可以在这个整数之前信任Javascript数字!”