दिलचस्प पोस्ट
कैसे gwt में कैश को साफ करने के लिए? एंड्रॉइड एमुलेटर प्रारंभ नहीं हो रहा है, "अमान्य कमांड-लाइन पैरामीटर" दिखा रहा है JavaScript कोडिंग के लिए अनुशंसित विम प्लग इन? मैं एक स्ट्रिंग को पायथन में int में कैसे रूपांतरित कर सकता / सकती हूं? पायथन में एक सूची कैसे रिक्त करें? Nginx 403 सभी फाइलों के लिए मना किया नेविगेशनदृश्य के लिए पाद लेख कैसे जोड़ें – एंड्रॉइड सपोर्ट डिज़ाइन लाइब्रेरी? कैसे मैं आउटपुट org.w3c.dom.Java में स्ट्रिंग प्रारूप करने के लिए एलेमेंट? जावा – एक आवृत्ति चर क्या है? HTML5 <वीडियो> कॉलबैक? कुछ यूनिकोड वर्णों के साथ टिप्पणियों में जावा कोड क्यों कार्यान्वित कर रहे हैं? Google मानचित्र एपीआई वी 3: अजीब यूआई डिस्प्ले विचलन (स्क्रीनशॉट के साथ) ऑपरेटर प्रीडेन्स बनाम ऑर्डर ऑफ एवल्यूएशन उद्देश्य सी में हर 3 अंकों की संख्या में कैसे अल्पविराम जोड़ना है? रूबी में हैश कुंजी के रूप में प्रतीक का उपयोग क्यों करें?

क्या मैं दो चर के साथ एक केस / स्विच स्टेटमेंट का उपयोग कर सकता हूं?

जब जावास्क्रिप्ट की बात आती है तो मैं एक नौसिखिया हूँ और यह मेरी समझ थी कि एक स्विच / केस स्टेटमेंट का इस्तेमाल करते हुए IF बयान की एक पूरी श्रृंखला से भी तेज है।

हालांकि, मैं दो चर के साथ एक SWITCH / CASE कथन का उपयोग करना चाहता हूं

मेरे वेब ऐप में दो स्लाइडर्स हैं, जिनमें से प्रत्येक में पांच राज्य हैं। मैं चाहता हूं कि व्यवहार इन दो चर के राज्यों के आधार पर होगा। जाहिर है कि यदि बहुत सारे IF / THEN बयानों का एक पूरा ढेर है

एक तरह से मैं ऐसा करने के बारे में सोचा था कि दो चर को एक में जोड़ रहा था और फिर मैं स्विच / केस कर सकता था।

क्या दो चर का प्रयोग करके एक SWITCH / CASE पूरा करने का एक बेहतर तरीका है?

धन्यवाद !

वेब के समाधान से एकत्रित समाधान "क्या मैं दो चर के साथ एक केस / स्विच स्टेटमेंट का उपयोग कर सकता हूं?"

बिटवाइ ऑपरेटर के बारे में कैसे? स्ट्रिंग्स के बजाय, आप "एंमोम्स" से निपटते हैं, जो कि "सुरुचिपूर्ण" दिखता है।

 // Declare slider's state "enum" var SliderOne = { A: 1, B: 2, C: 4, D: 8, E: 16 }; var SliderTwo = { A: 32, B: 64, C: 128, D: 256, E: 512 }; // Set state var s1 = SliderOne.A, s2 = SliderTwo.B; // Switch state switch (s1 | s2) { case SliderOne.A | SliderTwo.A : case SliderOne.A | SliderTwo.C : // Logic when State #1 is A, and State #2 is either A or C break; case SliderOne.B | SliderTwo.C : // Logic when State #1 is B, and State #2 is C break; case SliderOne.E | SliderTwo.E : default: // Logic when State #1 is E, and State #2 is E or // none of above match break; } 

मैं तो दूसरों के साथ सहमत हूं, एक स्विच-केस लॉजिक में 25 मामले बहुत सुंदर नहीं हैं, और यदि-दूसरे शायद कुछ मामलों में "बेहतर" लगते हैं वैसे भी।

 var var1 = "something"; var var2 = "something_else"; switch(var1 + "|" + var2) { case "something|something_else": ... break; case "something|...": break; case "...|...": break; } 

यदि आपके पास प्रत्येक के लिए 5 संभावनाएं हैं तो आपको 25 मामलों मिलेगी।

सबसे पहले, जावास्क्रिप्ट का switch if/else (और कभी-कभी बहुत धीमा) की तुलना में तेज नहीं है ।

दूसरा, एकाधिक चर के साथ switch का उपयोग करने का एकमात्र तरीका उन्हें एक आदिम (स्ट्रिंग, संख्या, आदि) मान में जोड़ना है:

 var stateA = "foo"; var stateB = "bar"; switch (stateA + "-" + stateB) { case "foo-bar": ... ... } 

लेकिन, व्यक्तिगत तौर पर, मैं / if else स्टेटमेंट्स का एक सेट देखना चाहता हूं।

संपादित करें : जब सभी मान पूर्णांक होते हैं, तो ऐसा प्रतीत होता है कि स्विच क्रोम में / if में अन्य हो सकता है। टिप्पणियाँ देखें

मुझे विश्वास नहीं है कि एक स्विच / केस किसी भी तेज / ifif की श्रृंखला की तुलना में है। वे एक ही काम करते हैं, लेकिन यदि / elseif आप कई चर को देख सकते हैं आप एक से अधिक मान पर स्विच / केस का उपयोग नहीं कर सकते।

आप प्रत्येक स्लाइडर पर प्रत्येक स्थिति को 1 से 1000000000 में एक अलग बाइनरी मान दे सकते हैं और फिर राशि के साथ काम कर सकते हैं।

यदि प्रत्येक संयोजन की क्रिया स्थिर है, तो आप दो-आयामी सरणी का निर्माण कर सकते हैं:

 var data = [ [1,2,3,4,5], [6,7,8,9,10], [11,12,13,14,15], [16,17,18,19,20], [21,22,23,24,25] ]; 

उपरोक्त उदाहरणों में संख्या कुछ भी हो सकती है, जैसे कि स्ट्रिंग, सरणी, आदि। मान प्राप्त करना अब एक-लाइनर है (संभालने वाले स्लाइडर्स में [0,5) का मान श्रेणी है:

 var info = data[firstSliderValue][secondSliderValue];