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 5.1; rv:52.0) Gecko/20100101 Firefox/52.0
Browser:
Firefox 52
Operating system:
Windows XP
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
switch/case
0.0 Ops/sec
Dictionary
98659.8 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();