之前在这里回答的问题说这是最快的方法:
在我的浏览器上进行基准测试后,我发现它比这个要慢3倍以上。
//nl is a NodeList
var arr = Array.prototype.slice.call(nl);
在我的浏览器上进行基准测试后,我发现它比这个要慢3倍以上。
var arr = [];
for(var i = 0, n; n = nl[i]; ++i) arr.push(n);
它们都产生相同的输出,但我很难相信我的第二个版本是最快的方式,尤其是因为有人在这里说了其他的话。
这是我的浏览器(Chromium 6)的问题吗?还是有更快的方法?
arr[arr.length] = nl[i];
可能比arr.push(nl[i]);
更快,因为它避免了函数调用。 - Luc125var i = nl.length, arr = new Array(i); for(; i--; arr[i] = nl[i]);
- mems