2016/10/01

How to easily avoid switch-case statement with function mapping in JavaScript

I won't advertise why it's good to avoid switch-case. While this matter might still be an open dispute I think there are usually better ways to implement what a switch-case does.

My vote would go for polymorphism, unfortunately much JavaScript code out there is not written following good OOP principles. So if you just need to work with given code base but not making a revolution there is a neat way to go:
const actions = {
    value1: actionX,
    value2: actionY,
    value3: actionZ
};

actions[value]();
Where action X, Y, Z are functions.

Of course it's good to add some check for undefined value, like:
actions[value] && actions[value]();

Or an error might be thrown if no mapping found as follows:
const action = actions[value]
        ? actions[value]
        : (value) => throw new Error('No action mapped for value: ' + value);

action(value);
Well, that's it. I believe it helps to reduce clutter in code. Just compare it to a typical switch:
switch (value) {
    case 'value1':
        actionX();
        break;
    case 'value2':
        actionY();
        break;
    case 'value3':
        actionZ();
        break;
    default: throw new Error('No action mapped for value: ' + value)
}


Exactly the same idea can be done in Groovy, Java and other languages if you are not up for polymorphism on a given case. Although for some languages with no functional paradigm, like Java before version 8, you may need to create some sort of Action class definition.

10 comments:

  1. Great survey, I'm sure you're getting a great response. Mason

    ReplyDelete


  2. Cleaning work is one of the most important areas that must be taken care of in order to maintain the safety of your furniture. Furniture is quickly exposed to dirt as a result of frequent use, in addition to children who have a major role in contaminating furniture and dirt, so we, as the best house cleaning company in Riyadh, rely on distinguished and modern tools.
    شركة تنظيف منازل بالباحة
    شركة تنظيف خزانات بالباحة

    Dear customers, we draw your attention to our use of effective and safe, healthy and environmentally friendly pesticides to spray the house, and we would like to inform you of our high-end goals, not just spraying, but also continuous follow-up to the customer with warranty.
    شركة مكافحة حشرات بالباحة

    ReplyDelete
  3. PG SLOT มีเกมหลากหลายให ้เลือก พรอ้ มกราฟฟิกแอนนเิมชนั่ สวยงามทสี่ ดุ ในยคุ นี้แจ็คพอตแตกง่าย pgslot โปรโมชนั่ พเิศษส าหรับทงั้สมาชก เกา่ และสมาชกิ ใหม่ ระบบฝาก-ถอนเงินออโต ้เงินเข ้าเร็วทันใจมีแอดมิ ดูแลตลอด 24 ชวั่ โมง ต ้องที่ pgslot.bid มั่นคงจ่ายจริง ไม่ว่าคุณจะถอนเงิ มากมายเท่าไหร่ ทางเว็บจ่ายเต็มไม่มีหัก pgslot ปั่นง่ายแตกง่าย

    PG SLOT ผู ้ให ้บริการเว็บตรง ที่แตกง่ายที่สุด ปั่นสนุก ฝากเงินรับเครดิตฟร สูงสุด 15000 บาท สมัคร พีจีสล็อต หรือ PGSLOT กับเราเพื่อความมั่นคงของคุณเอง.

    ReplyDelete
  4. Chennai's No.1 software training institute, Infycle Technologies, provides the best Big Data Hadoop Training in Chennai for students, freshers, and tech professionals along with other corporate courses such as Data Science, Cloud computing, DevOps, Digital Marketing, Python, Big Data, Selenium, Java, Hadoop, iOS, and Android development with 100% hands-on training. After the completion of training, the students will be sent for placement interviews in the core MNC's. Call 7502633633 to get more info and a free demo.Big Data Hadoop Training in Chennai | Infycle Technologies

    ReplyDelete
  5. Very informative post! There is a lot of information here that can help any business get started with a successful social networking campaign. Mason Jacob

    ReplyDelete
  6. พวกเราหลายคนเคยเล่นสล็อตแมชชีนในชีวิตของเรา แต่เกมนี้เกี่ยวกับอะไรกันแน่? สล็อตแมชชีนเป็นอุปกรณ์ที่สร้างตัวเลขสุ่มที่สร้างเกมแห่งโอกาสให้กับลูกค้า สล็อตมีหลายประเภท รวมถึงเครื่องโป๊กเกอร์ เกมพักกี้ และเครื่องผลไม้ จุดประสงค์ของเกมเหล่านี้คือการสร้างรายได้ให้กับลูกค้าผ่านการผสมผสานระหว่างโอกาสและทักษะ อย่างไรก็ตาม ประเภทสล็อตที่ดีที่สุดในการเล่นออนไลน์คือสล็อตวิดีโอ สมัครสล็อต
    การจ่ายเงินในเกมสล็อตจะถูกกาหนดโดยผู้พัฒนา สิ่งสาคัญคือต้องตรวจสอบการจ่ายเงินสาหรับเกมเหล่านี้ก่อนเดิมพัน คุณสามารถทาได้โดยทาการค้นหาโดย Google หรืออ่านบทวิจารณ์บนเว็บไซต์ที่มีชื่อเสียง บางเว็บไซต์มีฟอรัมผู้ใช้ซึ่งสามารถให้ข้อมูลที่มีค่าสาหรับผู้เล่น การเลือกคาสิโนออนไลน์ที่เหมาะสมเป็นสิ่งสาคัญสาหรับความปลอดภัยและความเพลิดเพลินของคุณ แต่คุณต้องระวังไม่ให้ติดเกม หากคุณเป็นมือใหม่ คุณควรเริ่มต้นเพียงเล็กน้อยและเพิ่มการลงทุนเมื่อคุณได้รับประสบการณ์มากขึ้น เพื่อให้แน่ใจว่าคุณกาลังเล่นที่คาสิโนออนไลน์ที่มีชื่อเสียง อ่านบทวิจารณ์เกี่ยวกับเว็บไซต์
    ค้นหาความคิดเห็นจากเพื่อนเกมเมอร์ ยังเลือกคาสิโนที่มีชื่อเสียงที่สุด บางเว็บไซต์มีการตรวจสอบสถานะและมีฟอรัมสาหรับผู้เล่นจานวนมาก ด้วยวิธีนี้ คุณจะมีความคิดที่ดีขึ้นว่าเกมสล็อตใดเกมหนึ่งยุติธรรมหรือไม่ และคุณควรเดิมพันเท่าไร การเล่นบนเว็บไซต์ที่มีชื่อเสียงย่อมดีกว่าเว็บไซต์ที่มีชื่อเสียงน้อยกว่าเสมอ ในบรรดาตัวเลือกออนไลน์ที่หลากหลาย การเลือกคาสิโนที่มีชื่อเสียงเป็นสิ่งสาคัญ ตรวจสอบให้แน่ใจว่าคาสิโนมีชื่อเสียงที่ยอดเยี่ยมเพื่อหลีกเลี่ยงการหลอกลวง ด้วยการค้นหาโดย Google อย่างรวดเร็ว คุณจะพบบทวิจารณ์คาสิโนที่ให้ผลตอบแทนดีที่สุด บางเว็บไซต์มีฟอรัมที่ผู้เล่นสามารถพูดคุยเกี่ยวกับประสบการณ์ของตนกับคาสิโนได้ เมื่อคุณเลือกคาสิโนออนไลน์ ให้หาข้อมูลก่อนเล่นเสมอ และถ้าคุณมีเวลาลองอ่านรีวิวคาสิโนก่อนเริ่มเล่น สมัครสล็อต ก่อนเล่นเกมสล็อตออนไลน์ คุณควรศึกษาข้อมูลให้ดีเสียก่อน คุณต้องการค้นหาคาสิโนที่ขึ้นชื่อเรื่องความซื่อสัตย์และความน่าเชื่อถือ เป็นความคิดที่ดีที่จะอ่านบทวิจารณ์ของผู้ใช้ในไซต์ต่างๆ แม้ว่าบางเว็บไซต์จะใหม่ แต่บางเว็บไซต์ก็เป็นที่ยอมรับและมีประวัติที่พิสูจน์แล้ว ไม่ต้องกังวลหากคุณสามารถไว้วางใจคาสิโนด้วยเงินของคุณ อันที่จริงแล้ว ไม่มีอะไรสาคัญไปกว่าความสนุกสนานขณะเล่น มีคาสิโนออนไลน์มากมายที่ให้บริการเกมสล็อต และสิ่งสาคัญคือต้องเลือกคาสิโนที่มีชื่อเสียงเพื่อให้แน่ใจว่าคุณมีประสบการณ์ที่ดี คาสิโนที่ดีจะมีการรีวิวจากผู้เล่นจริง และบางแห่งก็จะมีบริการลูกค้าที่พร้อมให้บริการทุกวันตลอด 24 ชั่วโมง คุณควรรู้ว่าคุณกาลังทาอะไรอยู่เมื่อเล่นออนไลน์ คุณจะต้องการเล่นเพื่อความสนุกสนาน แต่คุณไม่ควรถูกล่อลวงให้เสี่ยงเงินของคุณ!

    ReplyDelete
  7. 우리카지노는 대한민국의 바카라 업계를 장악하고 있는카지노사이트 입니다. 우리카지노가 대한 민국에서 장악한 바카라 시장점유율이 50%가 넘고 10년 넘게 온라인 바카라 시장을 장악해왔기 때문에 대한민국에서는 우리카지노를 모르는 사람은 드뭅니다. 이런 바카라 업계의 독보적인 입지 때문에 늘 유명하거나 최고만을 찾는 사람들이 카지노사이트를 찾을때는 늘
    우리카지노를 찾습니다.바카라를 처음 시작하시는 초보자분들에게도 우리카지노에서 카지노사이트를 시작하시기 좋은 환경입니다. 우리카지노사이트에서는 신규가입시 3만쿠폰을 지급 해주기 때문입니다. 사람들이 늘 1등만을 찾는 이유는 분명 있습니다. 다른 카지노사이트와는 달리 우리카지노를 이용하실시 에이전트를 끼고 게임을 하신다면 본사 이외에 활동쿠폰 및 오링쿠폰을 별도로 제공해주고 있기 때문입니다. 이러한 이유들 때문에 카지노사이트 업계에서 바카라를 즐기신다면 다들 우리카지노를 선호 하십니다. 카지노사이트에서 바카라를 이기기 물론 어렵습니다. 하지만 우리카지노의 에이전트를 끼고 바카라를 즐기신다면 승산이 있다고 봅니다. 우리카지노 에이전트의 연락처는 홈페이지로 연락하시면 언제든지 부담없이 소통가능 합니다. 카지노사이트를 선정할때는 바카라를 다른곳보다 유리하게 즐길 수 있는 카지노를 선택해야한다고 생각합니다. 그것이 바로 우리카지노 입니다. 이상으로 우리카지노와
    바카라 카지노사이트 사이의 상관관계를 알아보았습니다 바카라사이트.

    ReplyDelete
  8. Just 99 Web Design offers affordable web design packages for every business, from basic one-page websites to full eCommerce website design services. affordable web development

    ReplyDelete