const switchFn = (lookupObject, defaultCase = '_default') => expression => (lookupObject[expression] || lookupObject[defaultCase])(); const knownFruit = () => console.log('Known fruit'); const unknownFruit = () => console.log('Unknown fruit'); const logFruit = { 'apples': knownFruit, 'oranges': knownFruit, 'default': unknownFruit }; const fruitSwitch = switchFn(logFruit, 'default'); fruitSwitch('apples'); // Logs: 'Known fruit' fruitSwitch('pineapples'); // Logs: 'Unknown fruit'
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter