2013-08-27 32 views
0

将大型数组中的元素复制到另一个对象或使用引用会更快吗?在大数组中使用对该项的引用时,是否必须遍历数组才能到达它?访问大型数组的最快方法

var obj = HugeArray[54650]; 
var calc = obj.x * 2.43 + obj.y * 5.43 + obj.z * 4.323; 

OR

var obj = $.extend(true, {}, HugeArray[54650]); 
var calc = obj.x * 2.43 + obj.y * 5.43 + obj.z * 4.323; 

感谢。

回答

0
obj = HugeArray[54650]; 

以“数组”的项目的参考,但是从现在开始obj是直接引用的对象。

没有理由制作与$.extend项目的副本,只会让你的脚本更慢。

0

当你使用一个键时,你实际上正在访问一个指针。指针指向(heyy)该值的位置(在内存中)。这是访问数组中数据的最快方式。循环一直比较慢。

Im不熟悉$.extend mehod虽然

3

的JavaScript,一个阵列是一种类型的对象的。因此,查找arr[x]与查找obj[x]相同,因为大多数JavaScript引擎使用哈希表,这是非常快的,并且即使添加更多的关键字也不会显着减少。

Perf for properties vs variables here