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 년 이상 온라인 바카라 시장을 지배 해 왔기 때문에 우리 카지노를 모르는 사람은 거의 없습니다.

    ReplyDelete