Created
December 14, 2020 23:06
-
-
Save LissetteIbnz/a326fb4422db10297b41e9288dafdb0a to your computer and use it in GitHub Desktop.
Alternative switch and mapped object
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<body> | |
<script> | |
const printResult = (item) => console.log(`Selected option '${item}'.`); | |
const mappedObject = { | |
option1: printResult, | |
option2: printResult, | |
option3: printResult, | |
option4: printResult, | |
option5: printResult, | |
option6: printResult, | |
option7: printResult, | |
option8: printResult, | |
option9: printResult, | |
option10: printResult, | |
option11: printResult, | |
option12: printResult, | |
option13: printResult, | |
option14: printResult, | |
option15: printResult, | |
option16: printResult, | |
option17: printResult, | |
option18: printResult, | |
option19: printResult, | |
option20: printResult, | |
option21: printResult, | |
option22: printResult, | |
option23: printResult, | |
option24: printResult, | |
option25: printResult, | |
option26: printResult, | |
option27: printResult, | |
option28: printResult, | |
option29: printResult, | |
option30: printResult, | |
option31: printResult, | |
option32: printResult, | |
option33: printResult, | |
option34: printResult, | |
option35: printResult, | |
option36: printResult, | |
option37: printResult, | |
option38: printResult, | |
option39: printResult, | |
option40: printResult, | |
option41: printResult, | |
option42: printResult, | |
option43: printResult, | |
option44: printResult, | |
option45: printResult, | |
option46: printResult, | |
option47: printResult, | |
option48: printResult, | |
option49: printResult, | |
option50: printResult, | |
option51: printResult, | |
option52: printResult, | |
option53: printResult, | |
option54: printResult, | |
option55: printResult, | |
option56: printResult, | |
option57: printResult, | |
option58: printResult, | |
option59: printResult, | |
option60: printResult, | |
option61: printResult, | |
option62: printResult, | |
option63: printResult, | |
option64: printResult, | |
option65: printResult, | |
option66: printResult, | |
option67: printResult, | |
option68: printResult, | |
option69: printResult, | |
option70: printResult, | |
option71: printResult, | |
option72: printResult, | |
option73: printResult, | |
option74: printResult, | |
option75: printResult, | |
option76: printResult, | |
option77: printResult, | |
option78: printResult, | |
option79: printResult, | |
option80: printResult, | |
option81: printResult, | |
option82: printResult, | |
option83: printResult, | |
option84: printResult, | |
option85: printResult, | |
option86: printResult, | |
option87: printResult, | |
option88: printResult, | |
option89: printResult, | |
option90: printResult, | |
option91: printResult, | |
option92: printResult, | |
option93: printResult, | |
option94: printResult, | |
option95: printResult, | |
option96: printResult, | |
option97: printResult, | |
option98: printResult, | |
option99: printResult, | |
option100: printResult, | |
default: printResult, | |
}; | |
const switchFunction = (item) => { | |
switch (item) { | |
case 'option1': | |
printResult(item); | |
break; | |
case 'option2': | |
printResult(item); | |
break; | |
case 'option3': | |
printResult(item); | |
break; | |
case 'option4': | |
printResult(item); | |
break; | |
case 'option5': | |
printResult(item); | |
break; | |
case 'option6': | |
printResult(item); | |
break; | |
case 'option7': | |
printResult(item); | |
break; | |
case 'option8': | |
printResult(item); | |
break; | |
case 'option9': | |
printResult(item); | |
break; | |
case 'option10': | |
printResult(item); | |
break; | |
case 'option11': | |
printResult(item); | |
break; | |
case 'option12': | |
printResult(item); | |
break; | |
case 'option13': | |
printResult(item); | |
break; | |
case 'option14': | |
printResult(item); | |
break; | |
case 'option15': | |
printResult(item); | |
break; | |
case 'option16': | |
printResult(item); | |
break; | |
case 'option17': | |
printResult(item); | |
break; | |
case 'option18': | |
printResult(item); | |
break; | |
case 'option19': | |
printResult(item); | |
break; | |
case 'option20': | |
printResult(item); | |
break; | |
case 'option21': | |
printResult(item); | |
break; | |
case 'option22': | |
printResult(item); | |
break; | |
case 'option23': | |
printResult(item); | |
break; | |
case 'option24': | |
printResult(item); | |
break; | |
case 'option25': | |
printResult(item); | |
break; | |
case 'option26': | |
printResult(item); | |
break; | |
case 'option27': | |
printResult(item); | |
break; | |
case 'option28': | |
printResult(item); | |
break; | |
case 'option29': | |
printResult(item); | |
break; | |
case 'option30': | |
printResult(item); | |
break; | |
case 'option31': | |
printResult(item); | |
break; | |
case 'option32': | |
printResult(item); | |
break; | |
case 'option33': | |
printResult(item); | |
break; | |
case 'option34': | |
printResult(item); | |
break; | |
case 'option35': | |
printResult(item); | |
break; | |
case 'option36': | |
printResult(item); | |
break; | |
case 'option37': | |
printResult(item); | |
break; | |
case 'option38': | |
printResult(item); | |
break; | |
case 'option39': | |
printResult(item); | |
break; | |
case 'option40': | |
printResult(item); | |
break; | |
case 'option41': | |
printResult(item); | |
break; | |
case 'option42': | |
printResult(item); | |
break; | |
case 'option43': | |
printResult(item); | |
break; | |
case 'option44': | |
printResult(item); | |
break; | |
case 'option45': | |
printResult(item); | |
break; | |
case 'option46': | |
printResult(item); | |
break; | |
case 'option47': | |
printResult(item); | |
break; | |
case 'option48': | |
printResult(item); | |
break; | |
case 'option49': | |
printResult(item); | |
break; | |
case 'option50': | |
printResult(item); | |
break; | |
case 'option51': | |
printResult(item); | |
break; | |
case 'option52': | |
printResult(item); | |
break; | |
case 'option53': | |
printResult(item); | |
break; | |
case 'option54': | |
printResult(item); | |
break; | |
case 'option55': | |
printResult(item); | |
break; | |
case 'option56': | |
printResult(item); | |
break; | |
case 'option57': | |
printResult(item); | |
break; | |
case 'option58': | |
printResult(item); | |
break; | |
case 'option59': | |
printResult(item); | |
break; | |
case 'option60': | |
printResult(item); | |
break; | |
case 'option61': | |
printResult(item); | |
break; | |
case 'option62': | |
printResult(item); | |
break; | |
case 'option63': | |
printResult(item); | |
break; | |
case 'option64': | |
printResult(item); | |
break; | |
case 'option65': | |
printResult(item); | |
break; | |
case 'option66': | |
printResult(item); | |
break; | |
case 'option67': | |
printResult(item); | |
break; | |
case 'option68': | |
printResult(item); | |
break; | |
case 'option69': | |
printResult(item); | |
break; | |
case 'option70': | |
printResult(item); | |
break; | |
case 'option71': | |
printResult(item); | |
break; | |
case 'option72': | |
printResult(item); | |
break; | |
case 'option73': | |
printResult(item); | |
break; | |
case 'option74': | |
printResult(item); | |
break; | |
case 'option75': | |
printResult(item); | |
break; | |
case 'option76': | |
printResult(item); | |
break; | |
case 'option77': | |
printResult(item); | |
break; | |
case 'option78': | |
printResult(item); | |
break; | |
case 'option79': | |
printResult(item); | |
break; | |
case 'option80': | |
printResult(item); | |
break; | |
case 'option81': | |
printResult(item); | |
break; | |
case 'option82': | |
printResult(item); | |
break; | |
case 'option83': | |
printResult(item); | |
break; | |
case 'option84': | |
printResult(item); | |
break; | |
case 'option85': | |
printResult(item); | |
break; | |
case 'option86': | |
printResult(item); | |
break; | |
case 'option87': | |
printResult(item); | |
break; | |
case 'option88': | |
printResult(item); | |
break; | |
case 'option89': | |
printResult(item); | |
break; | |
case 'option90': | |
printResult(item); | |
break; | |
case 'option91': | |
printResult(item); | |
break; | |
case 'option92': | |
printResult(item); | |
break; | |
case 'option93': | |
printResult(item); | |
break; | |
case 'option94': | |
printResult(item); | |
break; | |
case 'option95': | |
printResult(item); | |
break; | |
case 'option96': | |
printResult(item); | |
break; | |
case 'option97': | |
printResult(item); | |
break; | |
case 'option98': | |
printResult(item); | |
break; | |
case 'option99': | |
printResult(item); | |
break; | |
case 'option100': | |
printResult(item); | |
break; | |
default: | |
printResult('default'); | |
break; | |
} | |
}; | |
const mappedFunction = (item) => { | |
mappedObject[item] ? mappedObject[item](item) : mappedObject.default('default'); | |
}; | |
const mapObject = new Map([ | |
["option1", printResult], | |
["option2", printResult], | |
["option3", printResult], | |
["option4", printResult], | |
["option5", printResult], | |
["option6", printResult], | |
["option7", printResult], | |
["option8", printResult], | |
["option9", printResult], | |
["option10", printResult], | |
["option11", printResult], | |
["option12", printResult], | |
["option13", printResult], | |
["option14", printResult], | |
["option15", printResult], | |
["option16", printResult], | |
["option17", printResult], | |
["option18", printResult], | |
["option19", printResult], | |
["option20", printResult], | |
["option21", printResult], | |
["option22", printResult], | |
["option23", printResult], | |
["option24", printResult], | |
["option25", printResult], | |
["option26", printResult], | |
["option27", printResult], | |
["option28", printResult], | |
["option29", printResult], | |
["option30", printResult], | |
["option31", printResult], | |
["option32", printResult], | |
["option33", printResult], | |
["option34", printResult], | |
["option35", printResult], | |
["option36", printResult], | |
["option37", printResult], | |
["option38", printResult], | |
["option39", printResult], | |
["option40", printResult], | |
["option41", printResult], | |
["option42", printResult], | |
["option43", printResult], | |
["option44", printResult], | |
["option45", printResult], | |
["option46", printResult], | |
["option47", printResult], | |
["option48", printResult], | |
["option49", printResult], | |
["option50", printResult], | |
["option51", printResult], | |
["option52", printResult], | |
["option53", printResult], | |
["option54", printResult], | |
["option55", printResult], | |
["option56", printResult], | |
["option57", printResult], | |
["option58", printResult], | |
["option59", printResult], | |
["option60", printResult], | |
["option61", printResult], | |
["option62", printResult], | |
["option63", printResult], | |
["option64", printResult], | |
["option65", printResult], | |
["option66", printResult], | |
["option67", printResult], | |
["option68", printResult], | |
["option69", printResult], | |
["option70", printResult], | |
["option71", printResult], | |
["option72", printResult], | |
["option73", printResult], | |
["option74", printResult], | |
["option75", printResult], | |
["option76", printResult], | |
["option77", printResult], | |
["option78", printResult], | |
["option79", printResult], | |
["option80", printResult], | |
["option81", printResult], | |
["option82", printResult], | |
["option83", printResult], | |
["option84", printResult], | |
["option85", printResult], | |
["option86", printResult], | |
["option87", printResult], | |
["option88", printResult], | |
["option89", printResult], | |
["option90", printResult], | |
["option91", printResult], | |
["option92", printResult], | |
["option93", printResult], | |
["option94", printResult], | |
["option95", printResult], | |
["option96", printResult], | |
["option97", printResult], | |
["option98", printResult], | |
["option99", printResult], | |
["option100", printResult], | |
]); | |
const setFunction = item => { | |
return mapObject.get(item); | |
} | |
const chronoSwitchFunction = (item) => { | |
const startAt = performance.now(); | |
switchFunction(item); | |
const endAt = performance.now(); | |
const result = `[SWITCH] - For item '${item}' it toke ${endAt - startAt} ms.`; | |
console.log(result); | |
document.getElementById('switchResults').innerHTML = result; | |
} | |
const chronoMappedFunction = (item) => { | |
const startAt = performance.now(); | |
mappedFunction(item); | |
const endAt = performance.now(); | |
const result = `[MAPPED] - For item '${item}' it toke ${endAt - startAt} ms.`; | |
console.log(result); | |
document.getElementById('mappedResults').innerHTML = result; | |
} | |
const chronoSetFunction = (item) => { | |
const startAt = performance.now(); | |
setFunction(item); | |
const endAt = performance.now(); | |
const result = `[SET] - For item '${item}' it toke ${endAt - startAt} ms.`; | |
console.log(result); | |
document.getElementById('setResults').innerHTML = result; | |
} | |
const startRace = () => { | |
const item = document.getElementById('optionField').value; | |
chronoSwitchFunction(item) | |
chronoMappedFunction(item) | |
chronoSetFunction(item) | |
} | |
</script> | |
<div><span>Inser your option here:</span><input type="text" name="optionField" id="optionField"></div> | |
<div><input type="button" value="Run Script Race" onclick="startRace()"></div> | |
<div> | |
<h2>Results for engine: <span id="navigatorField"></span></h2> | |
</div> | |
<div> | |
<ul> | |
<li id="switchResults"></li> | |
<li id="mappedResults"></li> | |
<li id="setResults"></li> | |
</ul> | |
</div> | |
<script> | |
document.getElementById('navigatorField').innerHTML = navigator.userAgent; | |
</script> | |
</body> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment