Toggle navigation
MeasureThat
.net
Create a benchmark
Tools
Feedback
Feature Requests
FAQ
Register
Log In
Run results for:
Array.from(NodeList).map vs [...NodeList].map vs map.call(NodeList) vs. NodeList#map copied from Array vs for loop
Different methods of mapping a node list.
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:136.0) Gecko/20100101 Firefox/136.0
Browser:
Firefox 136
Operating system:
Windows
Device Platform:
Desktop
Date tested:
one year ago
Benchmark engine:
Benchmark.js
for loop
1.2M/s
NodeList#map
1.1M/s
map.call(NodeList)
1.1M/s
[...NodeList].map
1.0M/s
Array.from(NodeList).map
932K/s
View exact numbers
Test name
Executions per second
✓
for loop
1,154,182 Ops/sec
NodeList#map
1,129,124 Ops/sec
map.call(NodeList)
1,084,818 Ops/sec
[...NodeList].map
1,048,341 Ops/sec
Array.from(NodeList).map
931,746 Ops/sec
Script Preparation code:
NodeList.prototype.map = Array.prototype.map; window.list = document.querySelectorAll('div'); window.mapper = node => node.outerHTML;
Tests:
Array.from(NodeList).map
Array.from(list).map(mapper);
[...NodeList].map
[...list].map(mapper);
map.call(NodeList)
Array.prototype.map.call(list, mapper);
NodeList#map
list.map(mapper);
for loop
const result = []; for (let i = 0; i < list.length; i++) result.push(mapper(list[i], i, list));