2017-06-08 9 views
5

किसी संबंधित चर के आधार पर एक विशिष्ट चर के लिए मान असाइन करने के लिए, एक पठनीयता/टाइपिंग दृष्टिकोण से, सबसे तेज़ तरीका क्या है?सरणी के आधार पर एक चर निर्दिष्ट करने का सबसे तेज़ तरीका क्या है?

var abbrev; 

if(state=='Pennsylvania'){ 
    abbrev='PA'; 
}else if(state=='New Jersey'){ 
    abbrev='NJ'; 
}else if(state=='Delaware'){ 
    abbrev='DE'; 
} 
//and so on... 

मैं और राज्य नाम के लिए एक सरणी बनाने से बचने के कोशिश कर रहा हूँ संक्षिप्त नाम के लिए एक एक और सरणी क्योंकि रिश्ते अलग घोषणाओं के साथ खो दिया है।

+0

उपयोग एक 'Map' (' जे एस में Object')। फिर आपके पास स्ट्रिंग मानों पर स्ट्रिंग कुंजियां हो सकती हैं (उदाहरण: 'obj [' पेंसिल्वेनिया '] =' PA'') – CollinD

+1

आपको राज्य को संक्षेप में जोड़ने के लिए ** ** ** ** की आवश्यकता है, इसलिए आपकी सबसे अच्छी शर्त शायद वास्तव में एक सहयोगी सरणी । 'सर्वश्रेष्ठ' विकल्प व्यक्तिपरक है, और उस पर निर्भर करता है जिसे आप व्यक्तिगत रूप से 'सर्वश्रेष्ठ' मानते हैं। चार विकल्प मूल रूप से एक if/else कथन, एक स्विच स्टेटमेंट, एक एसोसिएटिव सरणी, या मैपिंग हैं। –

उत्तर

7

आप की तरह

var abbreviations = { 
     'Pennsylvania': 'PA', 
     'New Jersey': 'NJ', 
     'Delaware': 'DE' 
    }; 

प्रयोग संक्षिप्त नाम के लिए एक object इस्तेमाल कर सकते हैं,:

abbrev = abbreviations[state]; 
+0

बिल्कुल मुझे क्या चाहिए। धन्यवाद। – koleslaw

+0

@ कोल्सलो, आपका स्वागत है। :-) –

1

केवल एक सुझाव है, तो आप मामले का उपयोग कर की कोशिश की? इसे और अधिक स्वच्छ और पठनीय लग रहा है

0

यह प्रयास करें:

var abbrev = ''; 
    if(state.indexOf(' ') == -1){ 
    abbrev = state.substring(0,2).toUpperCase(); 
    }else{ 
    var firstLetter = state.substring(0,1).toUpperCase(); 
    var secoundLetter = state.substring(state.indexOf(' '),1).toUpperCase(); 
    abbrev = firstLetter + secoundLetter; 
    } 
    alert(abbrev); 
+0

यह ' टी पेनसिल्वेनिया या टेक्सास जैसे राज्यों के लिए काम करता है जिसमें एक शब्द शामिल होता है। –

+2

आइए [शुरुआत] (https://en.wikipedia.org/wiki/List_of_U.S._state_abbreviations) से शुरू करते हैं ... 'अलास्का: AK' – Emissary

+1

मैं ब्राज़ीलियाई हूं, मैं अमेरिकी राज्यों को नहीं जानता, मेरे में मामला, यह कोड काम करता है: एकड़ - एसी, अलागोस - एएल, अमेज़ॅनस - एएम, साओ पाउलो - एसपी, बहिया - बीए, बेलो होरिज़ोंटे - बीएच, मिनस गेरैस - एमजी, आदि ...;) – sergioBertolazzo

संबंधित मुद्दे

 संबंधित मुद्दे