ovi*_*ovi 3 javascript performance
jsperf 有这个测试: http ://jsperf.com/javascript-array-concat-vs-push
它表明 concat 更快,但是如果您在初始数组中获得该结果,而不使用第三个变量,那么 concat 会慢得多:
for (i = 10000; i > 0; i--) {
arr1 = arr1.concat(arr2);
}
Run Code Online (Sandbox Code Playgroud)
即使您使用本地变量,但具有相同的名称,结果也是相同的:
for (i = 10000; i > 0; i--) {
var arr1 = arr1.concat(arr2);
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下吗?
您正在循环中改变原始数组。
for (i = 10000; i > 0; i--) {
arr1 = arr1.concat(arr2);
}
Run Code Online (Sandbox Code Playgroud)
这里,数组的大小arr1不断增长,并且随着数组变大,它会变得更慢,因为它必须分配更多的内存。
for (i = 10000; i > 0; i--) {
var arr3 = arr1.concat(arr2);
}
Run Code Online (Sandbox Code Playgroud)
在这里,您将分配给一个新变量而不进行变异arr1,arr2因此您可以测试连接两个小数组的性能。
在arr1您测试将一个大数组与一个小数组连接起来的性能的情况下。