Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Map.get vs array.indexOf sorting v2 with extra check
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36
Browser:
Chrome 140
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
8 months ago
Test name
Executions per second
Map
6870375.5 Ops/sec
indexOf
13501703.0 Ops/sec
preparedMap
10602988.0 Ops/sec
preparedMap with extra check
8863366.0 Ops/sec
shorter indexOf
13293984.0 Ops/sec
HTML Preparation code:
<!--your preparation HTML code goes here-->
Script Preparation code:
const order = ['a', 'b', 'c'] const data = ['b', 'c', 'a', 'd'] const preparedMap = new Map(order.map((letter, index) => [letter, index]))
Tests:
Map
const orderMap = new Map(order.map((letter, index) => [letter, index])) data.sort((a, b) => (orderMap.get(a) ?? Infinity) - (orderMap.get(b) ?? Infinity))
indexOf
data.sort((a, b) => { const indexA = order?.indexOf(a) const indexB = order?.indexOf(b) if (indexA !== -1 && indexB !== -1) return indexA - indexB if (indexA === -1) return 1 if (indexB === -1) return -1 return 0 })
preparedMap
data.sort((a, b) => (preparedMap.get(a) ?? Infinity) - (preparedMap.get(b) ?? Infinity))
preparedMap with extra check
data.sort((a, b) => (preparedMap.has(a) ? preparedMap.get(a) : Infinity) - (preparedMap.has(b) ? preparedMap.get(b) : Infinity))
shorter indexOf
data.sort((a, b) => { const ia = order.indexOf(a) const ib = order.indexOf(b) return (ia < 0) - (ib < 0) || ia - ib })