Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
With defined array, Array.includes vs String.includes vs Object Hashmap vs Set vs Array.indexOf Large
Matching a string against more than one possibility.
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0
Browser:
Firefox 122
Operating system:
Mac OS X 10.15
Device Platform:
Desktop
Date tested:
2 years ago
Test name
Executions per second
Array.includes
12824466.0 Ops/sec
String.includes
3790513.2 Ops/sec
Object Hash-map
4226181.0 Ops/sec
ES6 Set
1441498.8 Ops/sec
Array.indexOf
12692178.0 Ops/sec
Script Preparation code:
var testArray = ['foo', 'a','b', 'c','d','e','f','g','h','i','j', 'k', 'l','m','n' ,'bar','o', 'p', 'q', 'r', 's','t','u', 'v','w','x','y', 'z'];
Tests:
Array.includes
const testStrFirst = 'foo'; testArray.includes(testStrFirst); const testStrSecond = 'bar'; testArray.includes(testStrSecond); const testStrNotMatch = 'baz'; testArray.includes(testStrNotMatch);
String.includes
var testString = testArray.join(','); const testStrFirst = 'foo'; testString.includes(testStrFirst); const testStrSecond = 'bar'; testString.includes(testStrSecond); const testStrNotMatch = 'baz'; testString.includes(testStrNotMatch);
Object Hash-map
var objectHash = testArray.reduce((acc, key) => {acc[key] = true; return acc;},{}); const testStrFirst = 'foo'; objectHash[testStrFirst]; const testStrSecond = 'bar'; objectHash[testStrSecond]; const testStrNotMatch = 'baz'; objectHash[testStrNotMatch];
ES6 Set
var testSet = new Set(testArray); const testStrFirst = 'foo'; testSet.has(testStrFirst); const testStrSecond = 'bar'; testSet.has(testStrSecond); const testStrNotMatch = 'baz'; testSet.has(testStrNotMatch);
Array.indexOf
const testStrFirst = 'foo'; testArray.indexOf(testStrFirst); const testStrSecond = 'bar'; testArray.indexOf(testStrSecond); const testStrNotMatch = 'baz'; testArray.indexOf(testStrNotMatch);