Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Set vs Object vs Map (has/in) vs array
Compare the speed to retrieve a value from three data structures that can be used for boolean referencing; i.e. for mapping enabled settings.
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36
Browser:
Chrome 125
Operating system:
Windows
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
Set
2320632.0 Ops/sec
Object
2458009.2 Ops/sec
Map
2414265.5 Ops/sec
Array
2050767.1 Ops/sec
Script Preparation code:
var set = new Set(["one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"]); var object = {"one": true, "two": true, "three": true, "four": true, "five": true, "six": true, "seven": true, "eight": true, "nine": true, "ten": true}; var map = new Map([["one", true], ["two", true], ["three", true], ["four", true], ["five", true], ["six", true], ["seven", true], ["eight", true], ["nine", true], ["ten", true]]); var values = Object.keys(object);
Tests:
Set
set.has('one'); set.has('two'); set.has('three'); set.has('four'); set.has('five'); set.has('six'); set.has('seven'); set.has('eight'); set.has('nine'); set.has('ten');
Object
'one' in object; 'two' in object; 'three' in object; 'four' in object; 'five' in object; 'six' in object; 'seven' in object; 'eight' in object; 'nine' in object; 'ten' in object;
Map
map.has('one'); map.has('two'); map.has('three'); map.has('four'); map.has('five'); map.has('six'); map.has('seven'); map.has('eight'); map.has('nine'); map.has('ten');
Array
values.includes('one'); values.includes('two'); values.includes('three'); values.includes('four'); values.includes('five'); values.includes('six'); values.includes('seven'); values.includes('eight'); values.includes('nine'); values.includes('ten');