जावास्क्रिप्ट पहले अक्षर को कैपिटलाइज़ करें

| | | | | | | | | | | | | | | | | | | | | | | | | | | | |

कई शुरुआती कोड चुनौतियाँ हैं जो आपको एक इंजीनियर की तरह सोचने में मदद करेंगी। ऐसी ही एक चुनौती यह है कि आप किसी दिए गए स्ट्रिंग में प्रत्येक शब्द के पहले अक्षर को कैपिटल करते हैं। इस लेख में, हम जावास्क्रिप्ट में शीघ्र और कई संभावित समाधानों पर एक नज़र डालेंगे।

एक फ़ंक्शन को देखते हुए, कैपिटलाइज़ करें, जिसमें str एक पैरामीटर के रूप में, उस str को प्रत्येक शब्द के बड़े अक्षरों के साथ लौटाएं। अपने समाधान में चरम मामलों के बारे में सोचने की कोशिश करें (इनपुट के रूप में नहीं, गलत प्रकार के इनपुट, आदि)।

दृष्टिकोण

  1. संकेत पर फिर से एक नज़र डालें। किसी भी कीवर्ड को लिखें या हाइलाइट करें जो आपको शब्दों में मिल सकता है।
  2. शब्द समस्या के अर्थ को मिलाएं। कोड चुनौतियों को करने का सबसे कठिन हिस्सा यह पता लगाने की कोशिश कर रहा है कि समस्या आपको क्या करने के लिए कह रही है। समस्या को समझने से आपको इसे हल करने में काफी मदद मिलेगी।
  3. एक संभावित छद्म कोड समाधान। यह वास्तविक कोड होना जरूरी नहीं है (इसे आपके आईडीई या कंसोल ब्राउज़र में निष्पादन योग्य होने की आवश्यकता नहीं है - साधारण अंग्रेजी ठीक है):

समस्या को सावधानीपूर्वक चरण दर चरण हल करें। यह आपको टिप मामलों के बारे में सोचने में मदद करेगा - ऐसे मामले जहां एक गलत प्रविष्टि या एक खाली स्ट्रिंग पारित की जा सकती है - और समस्या को तार्किक चरणों में कैसे विभाजित किया जाए। यह मूल रूप से आपके प्रयोग का चरण है - कोई गलत उत्तर नहीं हैं, केवल इस बारे में विचार हैं कि समस्या से कैसे संपर्क किया जाए। ये विचार भ्रामक या पथभ्रष्ट हो सकते हैं - इस तरह आप किसी समस्या को हल करने के लिए जीता तरीकों के बारे में सीखते हैं

< पी>मैंने पाया है कि अगर मैं इसे जोर से समझाकर तोड़ सकता हूं, तो तर्क आसान है। आपके दृष्टिकोण के आधार पर आपका लाभ भिन्न हो सकता है, लेकिन मैं कम से कम सुझाव देना चाहता था कि यह आपके लिए काम करता है! इस तरह की एक छोटी सी समस्या के लिए उपनाम थोड़ा अधिक लगता है, लेकिन यदि आप अभी इस अवधारणा का अभ्यास करते हैं तो अधिक कठिन समस्याओं पर काम करना आपके लिए आसान हो जाएगा।

समाधान

समाधान # 1: String.replace () और charAt () विधियों के साथ विभाजित () और लूप

लीव = कैपिटलाइज़ (str) => {= स्टॉप लीव str.split (``); के लिए (या तो i = 0; i

इस पहले समाधान में, हम स्ट्रिंग को उसके रिक्त स्थान पर विभाजित करते हैं। यह हमें प्रत्येक अद्वितीय शब्द को उसकी अनुक्रमणिका के रूप में गिरफ्तार करता है। सरणी पर लूप हमें प्रत्येक स्ट्रिंग के व्यक्तिगत सूचकांकों तक पहुंचने की संभावना देता है। हमने स्ट्रिंग को फिर से असाइन किया है (इस मामले में स्ट्रिंग arr [i] है) इंडेक्स 0 पर स्ट्रिंग को बदलने के परिणामस्वरूप (arr [i] .charAt (0) अपरकेस में इसके मान के साथ। स्ट्रिंग में Arr के साथ प्रत्येक शब्द के बीच रिक्त स्थान

समाधान # 2: मानचित्र विधि और स्लाइस के साथ विभाजित करें

इस समाधान में हम एक समान तरीके से शुरू करते हैं, लेकिन हम नेटवर्क और वापसी के माध्यम से लूप कार्ड नामक एक ES6 सरणी विधि का उपयोग करते हैं नए मूल्यों का जो प्रत्येक शब्द के पहले वर्ण को कैपिटलाइज़ करता है। यह स्पष्ट रूप से यह निर्धारित करके करता है कि हम पहले अक्षर के लिए toUpperCase () के साथ क्या करेंगे, बाकी स्ट्रिंग के लिए स्लाइस () और स्ट्रिंग्स के साथ क्या करेंगे शब्द का नया संस्करण प्राप्त करने के लिए संयोजित करें। फिर हम सरणी को मर्ज करते हैं और इसे लौटाते हैं

div>

समाधान n 3: रेगुलर एक्सप्रेशन

लीवरेज की अनुमति दें = (str) => {लेट रेगेक्स = / (^ | एस) एस / जी वापसी str.replace (रेगेक्स, पत्र => पत्र। toUpperCase ()); } रूट छोड़ें = document.getElementById (`रूट`); root.innerHTML = JSON.stringify (कैपिटलाइज़ करें (त्वरित भूरा लोमड़ी आलसी कुत्ते पर कूद गई ‚Äã‚Äã`));

इस समाधान में, हम स्ट्रिंग की शुरुआत में सभी गैर-श्वेत वर्णों (S) को खोजने के लिए एक रेगुलर एक्सप्रेशन का उपयोग करते हैं (^ ) या स्पेस कैरेक्टर के बाद। अंत में संकेतक जी का अर्थ वैश्विक है और हमें इस मॉडल के सभी उदाहरण खोजने की अनुमति देता है। फिर हम उस रेगेक्स पैटर्न को एक फ़ंक्शन के साथ बदलने के लिए प्रतिस्थापित विधि का उपयोग करते हैं जो उस अक्षर को लेता है और उसे अपरकेस में लौटाता है।

अंतिम विचार

ये समाधान किसी भी तरह से एकमात्र समाधान नहीं हैं यह समस्या .. सबसे अधिक संभावना है, जैसे-जैसे आप इनमें से अधिक करना शुरू करेंगे, आपको ऐसे समाधान मिलेंगे जो किसी लेख या ब्लॉग द्वारा प्रस्तुत किए गए समाधानों से भिन्न हो सकते हैं या नहीं भी हो सकते हैं। यह एक अच्छी बात है। इसका मतलब है कि आप एक इंजीनियर की तरह सोचने लगते हैं - और यही बात है।

जारी रखें। इन समाधानों में, चरम मामलों को संबोधित नहीं किया जाता है। अगर आपका सब्जेक्ट खाली है या एक नंबर है तो आपको क्या करना चाहिए? इन सीमावर्ती मामलों से निपटकर उपरोक्त कोड में जोड़ने का प्रयास करें

टिप :। सशर्त रूप से यह पता लगाने के लिए कि str मौजूद है या नहीं, अवधि / धमाकेदार विस्मयादिबोधक का उपयोग करें। यह पता लगाने के लिए एमडीएन दस्तावेज़ देखें कि क्या किसी चीज़ के प्रकार का पता लगाने का कोई तरीका है, जबकि आप यह नहीं जानते कि वह क्या है।

एक बात : रिवर्स जावास्क्रिप्ट चैलेंज स्ट्रिंग्स आज़माएं यदि आपने पहले से नहीं किया है

अन्य संसाधनों पर विचार करने के लिए:

रूबी में रेगुलर एक्सप्रेशन का उपयोग करना - यह रूबी को समर्पित है, लेकिन रेगुलर एक्सप्रेशन अक्सर भाषा से स्वतंत्र होता है - त्वरित ` समाधान में RegExp सिंटैक्स के बारे में अधिक देखें # 1. 3.

JavaScript बदलें टेक्स्ट: चरण दर चरण मार्गदर्शिका - समाधान n में प्रयुक्त प्रतिस्थापन विधि के लिए समर्पित एक ट्यूटोरियल। 1.