जावास्क्रिप्ट रिवर्स स्ट्रिंग

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

नवोदित सॉफ्टवेयर इंजीनियरों और वेब डेवलपर्स के रूप में निपटने के लिए हमने जो पहली कोड / एल्गोरिथम चुनौतियों का सामना किया है, उनमें से एक यह देख रहा है कि क्या हम यह पता लगा सकते हैं कि स्ट्रिंग को कैसे उलटना है। याद रखें कि एक श्रृंखला सिर्फ पात्रों और रिक्त स्थान का एक संग्रह है। हमें जो करने की ज़रूरत है वह है रिवर्स करने का प्रयास करना, उदाहरण के लिए, स्ट्रिंग "सभी को नमस्कार!" और पीछे"! एडनॉम ओलेएच . इस समस्या को ठीक करने के कई तरीके हैं और हम उनमें से कुछ को यहां इस लेख में शामिल करने जा रहे हैं।

एक फ़ंक्शन लिखें ReverseString, जो एक स्ट्रिंग को उलट देता है और उसे वापस कर देता है। रिवर्स की जाने वाली स्ट्रिंग को फ़ंक्शन में एक तर्क के रूप में प्रदान किया जाता है।

समाधान n. 1: लूप करने के लिए

पहला और संभवत: सबसे आसान समाधानों में से एक है लूप का उपयोग करना और श्रृंखला के माध्यम से वापस जाना। हमें एक वेरिएबल को इंस्टेंट करना, या बनाना होगा, जिसमें नया उलटा स्ट्रिंग होता है जिसे हम स्ट्रिंग में प्रत्येक वर्ण को पास करते हैं:

i को अंतिम इंडेक्स को असाइन करें (जिसकी गणना तब की जाती है जब हम स्ट्रिंग की लंबाई का 1 लेते हैं) áí यह हमारा आरंभीकरण < है। / मजबूत> और यह पहले सुराग के रूप में काम करेगा जिसे हम देखेंगे। लूप का दूसरा भाग हमारी स्थिति ‚áí है जो लूप को बताता है कि कब रुकना है। लूप का तीसरा और अंतिम भाग यह है कि लूप पूरा होने के बाद हमारा i बढ़ता है और स्थिति अभी भी सही है: I- मूल रूप से हमारा i लेता है और इसे फिर से असाइन करता है - 1;

जैसा कि हम प्रत्येक पुनरावृत्ति के माध्यम से लूप करते हैं, हम प्रत्येक str [i] वर्ण लेते हैं और इसे newStr में जोड़ते हैं। फिर हम अपने लूप के बाहर newStr पर वापस जाते हैं और फ़ंक्शन से बाहर निकलते हैं।

कोड संपादक में इसे स्वयं आज़माएं:

<लेबल आईडी = "लेबल"> रिवर्स करने के लिए स्ट्रिंग डालें: <इनपुट प्रकार = "पाठ "नाम =" "आईडी =" एक उपयोगकर्ता_इनपुट संदेश "/> <इनपुट प्रकार =" सबमिट "ऑनक्लिक =" शोइनपुट (घटना); "आईडी =" बटन_इनवियो "/>
<लेबल> आपका इनपुट:

समाधान n । 2:

जावास्क्रिप्ट की ES6 जावास्क्रिप्ट मैप विधि में एक अंतर्निहित सरणी विधि है जो ES6 के लिए नई थी जिसे map कहा जाता है। यह क्या करता है निर्दिष्ट मानों के साथ एक नई सरणी लौटाता है। मानचित्र विधि में तीन पैरामीटर हैं: वर्तमान तत्व, तत्व अनुक्रमणिका, और उस सरणी की एक प्रति जिससे यह आया है। हम समाधान में अंतिम दो पैरामीटर का उपयोग करेंगे।

पहली चीज जो हमें करने की जरूरत है वह है विभाजित split () विधि का उपयोग करके एक सरणी में स्ट्रिंग करें। यदि हम एक खाली स्ट्रिंग पर विभाजित करते हैं, तो विधि हमें सभी वर्णों के साथ एक सरणी देगी। इसलिए हम ऊपर इस नई श्रेणी ए ला कार्टे का उपयोग करेंगे।

div>

चूंकि हम मूल रूप से स्वैप इंडेक्स चाहते हैं, हमें उस चरित्र के संकेत को समझने की जरूरत है जिसे हम वर्तमान इंडेक्स का सेट अप करना चाहते हैं। यह वह चरित्र होगा जिसे हम लौटाते हैं। ऐसा करने के लिए, हम की लंबाई पाते हैं सरणी, घटा एक क्योंकि हम शून्य-आधारित सरणी हैं, फिर वर्तमान अनुक्रमणिका की स्थिति घटाएं। जिस सरणी [स्वैपइंडेक्स] पर हम वापस आ रहे हैं वह मूल रूप से वर्तमान अनुक्रमणिका की जगह लेता है। यह हमें उलटा की एक सरणी देता है एक स्ट्रिंग में वर्ण।

आखिरी चीज जो हमें करने की आवश्यकता है वह है dre सरणी को एक स्ट्रिंग में जोड़ने और उसे वापस करने के लिए।

कोड संपादक में समाधान का परीक्षण करना!

<लेबल आईडी = "लेबल"> रिवर्स करने के लिए स्ट्रिंग डालें: <इनपुट प्रकार = "पाठ "नाम =" "आईडी =" एक उपयोगकर्ता_इनपुट संदेश "/> <इनपुट प्रकार =" सबमिट "ऑनक्लिक =" शोइनपुट (घटना); "आईडी =" बटन_इनवियो "/>
<लेबल> आपका इनपुट:

जरूरी बात याद रखें कि नक्शा एक नया सरणी देता है - इसलिए हम पारित मूल str / सरणी को संशोधित नहीं कर रहे हैं।

< h4> समाधान # 3: अंतर्निहित जावास्क्रिप्ट विधि

इस कोड समस्या को हल करने के लिए यह विधि अंतर्निहित कार्यों / विधियों का उपयोग करती है <कोड>विभाजन (), <कोड> उलटा () और शामिल हों () इसे इस एक-लाइनर में हल करने के लिए:

नीचे दिए गए कोड को चलाने का प्रयास करें और व्यक्तिगत रूप से इसका परीक्षण करें देखें काम!

मूल रूप से बिल्ट-इन रिवर्स () card () है (जिस विधि का हमने अपने पिछले समाधान में वर्णन किया था) हुड के नीचे; लेकिन , यदि आप स्थान पर फ़्लिप करते हैं तो एक नया सरणी वापस करने के बजाय मूल सरणी को बदल दें। एक समस्या को हल कर रहे हैं लेकिन बड़ा है, आपको मूल तालिका की एक प्रति बनाने की आवश्यकता हो सकती है ताकि यदि आवश्यक हो तो आप अभी भी मूल तक पहुंच सकें।

ये नहीं हैं इसे ठीक करने के केवल निश्चित तरीके - ये इस प्रयोग को ठीक करने के कुछ सबसे लोकप्रिय तरीके हैं और देखें कि क्या आप नीचे दिए गए कोड संपादक में अपने लिए अन्य समाधान ढूंढ सकते हैं - ऊपर संशोधित करें .. ReverseString () कोड> और कुछ नहीं अगर आप इसे स्क्रीन पर देखना चाहते हैं।