Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Switch/case vs indexOf
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/131.0.0.0 Safari/537.36
Browser:
Chrome 131
Operating system:
Windows
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
switch/case
725270.8 Ops/sec
Dictionary
11907991.0 Ops/sec
Tests:
switch/case
const elementAction = { a: 1, b: 2, c: 3, }; function func() { switch (true) { case Object.hasOwn(elementAction, 'foo'): return false; case Object.hasOwn(elementAction, 'bar'): return false; case Object.hasOwn(elementAction, 'baz'): return false; case Object.hasOwn(elementAction, 'bazz'): return false; case Object.hasOwn(elementAction, 'fooz'): return false; case Object.hasOwn(elementAction, 'foob'): return false; case Object.hasOwn(elementAction, 'doob'): return false; case Object.hasOwn(elementAction, 'bafz'): return false; case Object.hasOwn(elementAction, 'barz'): return false; case Object.hasOwn(elementAction, 'gas'): return false; case Object.hasOwn(elementAction, 'gaz'): return false; case Object.hasOwn(elementAction, 'daz'): return false; case Object.hasOwn(elementAction, 'dar'): return false; case Object.hasOwn(elementAction, 'har'): return false; case Object.hasOwn(elementAction, 'ooph'): return false; case Object.hasOwn(elementAction, 'phooph'): return false; default: return true; } } func();
Dictionary
const elementAction = { a: 1, b: 2, c: 3, }; const dictionary = [ { key: 'foo', value: () => false, }, { key: 'bar', value: () => false, }, { key: 'baz', value: () => false, }, { key: 'bazz', value: false, }, { key: 'fooz', value: false, }, { key: 'doob', value: false, }, { key: 'bafz', value: false, }, { key: 'barz', value: false, }, { key: 'gas', value: false, }, { key: 'gaz', value: false, }, { key: 'daz', value: false, }, { key: 'dar', value: false, }, { key: 'har', value: false, }, { key: 'ooph', value: false, }, { key: 'phooph', value: false, }, { key: 'foo', value: false, }, ]; function func() { const index = dictionary.indexOf(({ key }) => Object.hasOwn(elementAction, key)); return index > -1 ? dictionary[index].value : true; } func();