NodeList To Array (v63)

Revision 63 of this benchmark created on


Description

Preparation HTML

<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div><p><a></a></p></div>
<div>
<div>
        <ul>
                <li id="item-2"><a href="#">item 1</a></li>
                <li id="item-1"><a href="#">item 2</a></li>
                <li id="item-3"><a href="#">item 3</a></li>
                <li id="item-3"><a href="#">item 4</a></li>
                <li id="item-3"><a href="#">item 5</a></li>
</ul>
</div>
<div>
<p><b></b></p>
<p><b></b></p>
</div>
<div>
<ul>
                <li id="item-3"><a href="#">item 6</a></li>
                <li id="item-3"><a href="#">item 7</a></li>
                <li id="item-3"><a href="#">item 8</a></li>
                <li id="item-3"><a href="#">item 9</a></li>
                <li id="item-3"><a href="#">item 10</a></li>
        </ul>
</div>
</div>

Setup

var nl = document.getElementsByTagName('*');

Test runner

Ready to run.

Testing in
TestOps/sec
Array.prototype.slice.call
var arr = Array.prototype.slice.call(nl);
ready
Array.push
var arr = [];
for (var i = 0; i<nl.length; ++i) arr.push(nl[i]);
ready
For loop push
var l = []; // Will hold the array of Node's
for (var i = 0, ll = nl.length; i != ll; l.push(nl[i++]));
ready
Set length first v1
var arr = [];
for (var i = 0, ref = arr.length = nl.length; i < ref; i++) {
 arr[i] = nl[i];
}
ready
Set length first v2
var arr = [],
  len = nl.length,
  i;

for (i = 0; i < len; i += 1) {
 arr[i] = nl[i];
}
ready
Terse While new Array
var l=nl.length, arr = new Array(l);
while(l--){arr[l]=nl[l]};
ready
Push.apply
var arr = [];
arr.push.apply(arr, nl);
ready
Array.unshift
// nl is the nodelist
var arr = [];
for (var i = nl.length; i--; arr.unshift(nl[i]));
ready
Bitwise operation
var arr = [];
for (var i=0, l=nl.length >>> 0; i++ !==l; arr[i] = nl[i]);
ready
Array.from
var arr = Array.from(nl);
ready
Spread operator
var arr = [...nl];
ready
While forward loop
var arr = [], i=0, l=nl.length;
while(i!==l) arr[i] = nl[i++];
ready
Reverse while loop
var arr = [], i=0, l=nl.length;
while(i!==l) arr[i] = nl[i++];
ready
Reverse for loop
for(var arr=[],i=nl.length;i--;arr[i]=nl[i]);
ready
Unshift
for(var arr = [], i = nl.length; i--; arr.unshift(nl[i]));
ready
For loop assign
for(var arr = [],  i=-1,l=nl.length;++i!==l;arr[i]=nl[i]);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.