Switch vs Object (v2)

Revision 2 of this benchmark created on


Preparation HTML


Setup


function CASE1 () { console.log('1') }
function CASE2 () { console.log('2') }
function CASE3 () { console.log('3') }
function CASE4 () { console.log('4') }
function CASE5 () { console.log('5') }
function CASE6 () { console.log('6') }
function defaulter () { console.log('default') }

const arrayed = [
  () => { console.log('1') },
  () => { console.log('2') },
  () => { console.log('3') },
  () => { console.log('4') },
  () => { console.log('5') },
  () => { console.log('6') },
]

function switcher(selector) {
	switch (selector) {
		case 'CASE1': return CASE1();
		case 0: return console.log('0')
		case 'CASE2': return CASE2();
		case 'CASE3': return CASE3();
		case 'CASE4': return CASE4();
		case 'CASE5': return CASE5();
		case 6: return console.log('6')
		case 'CASE6': return CASE6();
		default: defaulter()
	}
}

const objection = {
	'CASE1' () { CASE1(); },
	'CASE2' () { CASE2(); },
	'CASE3' () { CASE3(); },
	'CASE4' () { CASE4(); },
	'CASE5' () { CASE5(); },
	'CASE6' () { CASE6(); },
}

function objecter(selector) {
	const operator = objection[selector]
	if (operator) {
		operator()
	} else {
		defaulter()
	}
}

function ifer(selector) {
	if (selector === 'CASE1') { return CASE1() }
	else if (selector === 'CASE2') { return CASE2() }
	else if (selector === 'CASE3') { return CASE3() }
	else if (selector === 'CASE4') { return CASE4() }
	else if (selector === 'CASE5') { return CASE5() }
	else if (selector === 'CASE6') { return CASE6() }
	else if (selector === 'CASE2') { return CASE2() }
	else { defaulter() }
}

function arrayer(selector) {
	arrayed[selector] ? arrayed[selector](selector) : defaulter()
}

Test runner

Ready to run.

Testing in
TestOps/sec
Switch 1rst result
switcher('CASE1')
ready
Switch last result
switcher('CASE6')
ready
Switch default result
switcher('')
ready
Object 1rst result
objecter('CASE1')
ready
Object last result
objecter('CASE6')
ready
Object default result
objecter('')
ready
If 1rst
ifer('CASE1')
ready
If last
ifer('CASE6')
ready
If default
ifer('')
ready
Array 0
arrayer(0)
ready
Array 6
arrayer(6)
ready
Array null
arrayer(null)
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.