जावास्क्रिप्ट में एक स्ट्रिंग को कैसे घुमाएं?

एल्गोरिथ्म को परिभाषित करना, स्लाइस स्ट्रिंग विधि, मोडुलो ऑपरेटर और बहुत कुछ का उपयोग करना।

Unsplash . पर मिकेल क्रिस्टेंसन द्वारा फोटो

यह आलेख वर्णन करता है कि एक स्ट्रिंग को घुमाते हुए एक साधारण एल्गोरिदम कैसे लिखना है। यह दो कोड इकाइयों को लेने वाले विशेष वर्णों के मामले से भी संबंधित है।

यह समझने के लिए कि नई स्ट्रिंग की गणना कैसे करें, कुछ उदाहरण देखें।

  • वर्ण ABCDEद्वारा स्ट्रिंग को बाईं ओर घुमाने से 1परिणाम होता हैBCDEA
  • एक ही पाठ को 2 वर्णों से घुमाने का प्रयास करने से परिणाम CDEAB.

बाईं ओर घूम रहा है

आइए अब ऐसे एल्गोरिथम को लागू करने का प्रयास करें और इसे एक फ़ंक्शन में इनकैप्सुलेट करें।

function rotate(text, noOfChars = 0){
  return text;
}

जब आप परिणाम को देखते हैं, तो 5वर्णों की एक स्ट्रिंग को वर्णों के अनुसार 6घुमाना वैसा ही होता है जैसा कि इसे 1वर्ण द्वारा घुमाया जाता है । इसे 7वर्णों द्वारा घुमाना वैसा ही है जैसे इसे 2वर्णों द्वारा घुमाना । घुमाए जाने वाले वर्णों की संख्या वास्तव में दी गई संख्या और स्ट्रिंग के आकार के बीच का मॉड्यूल है।

6 % 5 === 1
7 % 5 === 2

slice(start, end)विधि स्ट्रिंग के एक हिस्से को देता है, यह देखते हुए पर शुरू startसूचकांक और पहले समाप्त होने के endसूचकांक। 0अनुक्रमणिका से प्रारंभ होने वाले स्ट्रिंग के भाग को निकालते समय , वर्णों की निर्दिष्ट संख्या मूल रूप से अंतिम अनुक्रमणिका होती है।

"ABCDE".slice(0, 1)
//'A'
"ABCDE".slice(0, 2)
//'AB'

"ABCDE".slice(1)
//'BCDE'
"ABCDE".slice(2)
//'CDE'

function rotate(text, noOfChars = 0){
  const n = noOfChars % text.length;
  return text.slice(n) + text.slice(0, n); 
}
rotate("ABCDE", 1)
//BCDEA
rotate("ABCDE", 2)
//CDEAB

function rotate(text, noOfChars = 0){
  const n = noOfChars % text.length;
  const part1 = text.slice(0, n);
  const part2 = text.slice(n);
  return `${part2}${part1}`;
}

टेक्स्ट ABCDEको 1वर्ण के अनुसार दाईं ओर घुमाने पर परिणाम मिलता हैEABCD

2पात्रों द्वारा घूर्णन देता है DEABC।

3वर्णों के अनुसार घुमाने का परिणाम CDEAB.

4पात्रों द्वारा घूर्णन देता है BCDEA।

5वर्णों द्वारा घुमाने से कोई परिवर्तन नहीं होता है, यह वही परिणाम देता है जो इनपुट टेक्स्ट में होता है ABCDE।

6पात्रों द्वारा घूर्णन करना चरित्र द्वारा घूर्णन के समान है 1। यह देता है EABCD।

ध्यान दें कि टेक्स्ट को दाईं ओर घुमाने से वैसा ही परिणाम मिलता है, जैसा इसे बाईं ओर घुमाने पर मिलता है, लेकिन वर्णों की संख्या भिन्न होती है।

  • के साथ बाईं ओर 1घूमने से वही परिणाम मिलता है, जो दाईं ओर घुमाने पर मिलता है 4।
  • 2वर्णों द्वारा बाईं ओर घूमना वर्णों द्वारा दाईं ओर घूमने के समान है 3।
  • 3रिटर्न के साथ बाईं ओर घूमना DEABC, ठीक उसी तरह जैसे दाईं ओर घूमना 2।
  • 4देता है के साथ बाईं ओर EABCDघुमाने के साथ , दाईं ओर घूमने के समान1

function rotateRight(text, noOfChars = 0){
  const n = noOfChars % text.length;
  return rotate(text, text.length - n);
}
rotateRight("ABCDE", 1)
//EABCD
rotateRight("ABCDE", 2)
//DEABC

अफसोस की बात है कि इमोजी जैसी दो कोड इकाइयों को लेने वाले पात्रों के साथ व्यवहार करते समय पिछला समाधान काम नहीं करता है। अगली कॉल की जाँच करें।

rotate("😐ABC", 1)
//'�ABC�'

function rotate(text, noOfChars = 0){
  const chars = Array.from(text);
  const n = noOfChars % chars.length;
  const newArr = chars.slice(n).concat(chars.slice(0, n));
  return newArr.join("");
}
rotate("😐ABC", 1)
//'ABC😐'

sliceसरणी विधि एक जैसे काम करता है sliceस्ट्रिंग विधि। यह सरणी के कुछ हिस्सों को एक नए में निकालता है जिसमें दिए गए प्रारंभ और अंत अनुक्रमणिका के बीच के तत्व होते हैं।

concatसरणी विधि क्रम में उन दोनों से तत्वों से युक्त एक नया एक में दो सरणियों कोनकैटेनेट्स किया गया।

joinखाली स्ट्रिंग के साथ बुलाई गई सरणी विधि वर्णों की नई सरणी को वापस एक नई स्ट्रिंग में परिवर्तित करती है।

मुख्य नोट

  • slice विधि एक नई स्ट्रिंग लौटाती है, जो दिए गए प्रारंभ सूचकांक से शुरू होती है और अंत सूचकांक से पहले समाप्त होती है।
  • जब हमें किसी स्ट्रिंग को वर्णों की संख्या से अधिक संख्या से घुमाना होता है, तो हमें इसे टेक्स्ट के आकार से विभाजित करने और शेष मान का उपयोग करने की आवश्यकता होती है। यह मॉड्यूलो ऑपरेटर ( %) के साथ पूरा किया जा सकता है ।
  • nवर्णों द्वारा स्ट्रिंग को दाईं ओर घुमाना size — nवर्णों द्वारा बाईं ओर घुमाने के समान है ।
  • दो कोड इकाइयाँ लेने वाले वर्णों वाले स्ट्रिंग को संसाधित करते समय हमें इसे वर्णों की एक सरणी में बदलने, सरणी को संसाधित करने और फिर परिणाम को एक स्ट्रिंग में बदलने की आवश्यकता हो सकती है।

आप यह भी देख सकते हैं कि बड़े सरणी में तत्वों को कैसे खोजें ।

Plainenglish.io पर अधिक सामग्री

Suggested posts

डोमेन नाम के बारे में जानकारी ढूँढना

ब्रायन पी. होगन द्वारा स्मॉल, शार्प सॉफ्टवेयर टूल्स का एक अंश

डोमेन नाम के बारे में जानकारी ढूँढना

जब आप facebook.com से अनुरोध करते हैं, तो आपका कंप्यूटर उस डोमेन नाम को IP पते में अनुवादित करने के लिए डोमेन नाम खोजता है ताकि आपका कंप्यूटर वह कनेक्शन बना सके।

नो-कोड क्रांति: वेबफ्लो, फ्रैमर, बबल.आईओ के साथ व्यावसायिक समृद्धि को उजागर करना,

नो-कोड क्रांति: वेबफ्लो, फ्रैमर, बबल.आईओ के साथ व्यावसायिक समृद्धि को उजागर करना,

जैसे ही आप इन आश्चर्यजनक नो-कोड प्लेटफार्मों की अप्रयुक्त क्षमता का दोहन करते हैं, नवाचार और सफलता की एक रोमांचक यात्रा पर लग जाते हैं। मैं आपके साथ सपना, एक उल्लेखनीय महिला उद्यमी के बारे में एक कहानी साझा करता हूँ।

Related posts

डोमेन नाम के बारे में जानकारी ढूँढना

ब्रायन पी. होगन द्वारा स्मॉल, शार्प सॉफ्टवेयर टूल्स का एक अंश

डोमेन नाम के बारे में जानकारी ढूँढना

जब आप facebook.com से अनुरोध करते हैं, तो आपका कंप्यूटर उस डोमेन नाम को IP पते में अनुवादित करने के लिए डोमेन नाम खोजता है ताकि आपका कंप्यूटर वह कनेक्शन बना सके।

ग्रह को कैसे बचाएं और पैसे कमाएं

ग्रह को कैसे बचाएं और पैसे कमाएं

कितनी बार आपने दो बार बिना सोचे-समझे एक प्लास्टिक की बोतल, एक कांच के जार, एक एल्युमिनियम कैन, या एक हरित ऊर्जा पैकेज को फेंक दिया है? आपने कितनी बार कामना की है कि आप उन्हें पुनर्चक्रित करने के बदले में कुछ प्राप्त कर सकते हैं? यदि आप अधिकांश लोगों की तरह हैं, तो उत्तर शायद कई बार होगा। पुनर्चक्रण को अक्सर एक झंझट, एक काम या कर्तव्य के रूप में देखा जाता है जो कोई तत्काल या ठोस लाभ नहीं लाता है।

नेटवर्क टीवी ट्विटर

नेटवर्क टीवी ट्विटर

जो पुराना था वह फिर से नया हो गया और जो चमक-दमक वाली चीज हुआ करती थी वह अब फीकी लगने लगी है। मैं जेएनसीओ जीन्स के बारे में बात नहीं कर रहा हूं, जो 1990 के दशक के उत्तरार्ध के फैशन के साथ-साथ शांत बच्चों के बीच वापसी कर रहा है।

असीम जीवन

जब आप बड़े हो जाते हैं तो आपको बताया जाता है कि दुनिया वैसी ही है जैसी वह है और आपका जीवन सिर्फ दुनिया के अंदर अपना जीवन जीने के लिए है, कभी भी अपने जीवन को जोखिम में न डालें, बस एक निर्धारित मार्ग का अनुसरण करें और अंत में मर जाएं, और कोशिश न करें दीवारों को बहुत मारो।लेकिन यह बहुत सीमित जीवन है।