我正在寻找一种高性能的方式来填充两个数组之间互斥的值。该数据适用于必须具有每个x值的条目的JS图表。 一个例子可以说明这更好:Javascript:填充数组之间的缺失值
前:
obj1 = [{x:1, y:1}, {x:3, y:2}];
obj2 = [{x:2, y:2}, {x:4, y:4}];
后:我用嵌套的for循环
obj1 = [{x:1, y:1}, {x: 2, y:0}, {x:3, y:2}, {x:4, y:0}];
obj2 = [{x:1, y:0}, {x: 2, y:2}, {x:3, y:0}, {x:4, y:4}];
这个做自己,但作为对象的数量&条目增加,墙时间变得难以接受。在一个数据集中,数据填充总数达到了几千条,墙壁时间超过了10秒。
我看过一些JS库,如jQuery和下划线,但不清楚它们有更好的执行功能。
更新:感谢您的所有答复。我会尝试一下并将最佳表现作为答案。 关于x值的说明:它们不一定是单调递增(只要两者都可以,obj1 & 2可以跳过x值)。 x轴不一定是数字,也可能是日期。希望有一个或多个答案适用于此。
该方法将该测试数据集和CPU的零填充时间从5秒缩短到毫秒。我创建了每个数组(数据层)的所有x值的字典。我还为每个数据层创建了临时字典以加快查找速度(避免迭代数组或使用indexOf)。查找非常快:for(var in all_x_vals){if(typeof tmp_dict [entry] =='undefined')ZeroFillArrayEntry(); } -----不是确切的代码,但希望得到点 – pmont