कभी किसी स्ट्रिंग को कैमलकेस में बदलने की आवश्यकता पड़ी? ओपन-सोर्स सुपाबेस रिपॉजिटरी की खोज के दौरान मुझे एक दिलचस्प कोड स्निपेट मिला। यहां वह विधि दी गई है जिसका वे उपयोग करते हैं:
function featureToCamelCase(feature: Feature) { return feature .replace(/:/g, '\_') .split('\_') .map((word, index) => (index === 0 ? word : word\[0\].toUpperCase() word.slice(1))) .join('') as FeatureToCamelCase}
यह फ़ंक्शन बहुत साफ-सुथरा है। यह कोलन को अंडरस्कोर से बदल देता है, स्ट्रिंग को शब्दों में विभाजित करता है, और फिर इसे कैमलकेस में बदलने के लिए प्रत्येक शब्द के माध्यम से मैप करता है। पहले शब्द को लोअरकेस में रखा जाता है, और बाद के शब्दों को एक साथ वापस जोड़ने से पहले उनके पहले अक्षर को बड़े अक्षरों में लिखा जाता है। सरल फिर भी प्रभावी!
मुझे स्टैक ओवरफ़्लो पर एक और दृष्टिकोण मिला जो नियमित अभिव्यक्तियों का उपयोग नहीं करता है। यहाँ विकल्प है:
function toCamelCase(str) { return str.split(' ').map(function(word, index) { // If it is the first word make sure to lowercase all the chars. if (index == 0) { return word.toLowerCase(); } // If it is not the first word only upper case the first char and lowercase the rest. return word.charAt(0).toUpperCase() word.slice(1).toLowerCase(); }).join(''); }
एसओ के इस कोड स्निपेट में टिप्पणियां हैं जो बताती हैं कि यह कोड क्या करता है, सिवाय इसके कि यह किसी भी प्रकार के रेगेक्स का उपयोग नहीं करता है। एक स्ट्रिंग को कैमलकेस में परिवर्तित करने के सुपाबेस के तरीके में पाया गया कोड इस SO उत्तर के समान है, टिप्पणियों और उपयोग किए गए रेगेक्स को छोड़कर।
.replace(/:/g, '\_')
यह विधि स्ट्रिंग को रिक्त स्थान से विभाजित करती है और फिर प्रत्येक शब्द पर मैप करती है। पहला शब्द पूरी तरह से लोअरकेस है, जबकि बाद के शब्दों को पहले अक्षर पर बड़े अक्षरों में लिखा गया है और बाकी के लिए लोअरकेस में रखा गया है। अंत में, कैमलकेस स्ट्रिंग बनाने के लिए शब्दों को वापस एक साथ जोड़ दिया जाता है।
स्टैक ओवरफ़्लो उपयोगकर्ता की एक दिलचस्प टिप्पणी में इस दृष्टिकोण के प्रदर्शन लाभ का उल्लेख किया गया है:
“ 1 रेगुलर एक्सप्रेशन का उपयोग न करने के लिए, भले ही प्रश्न में उनका उपयोग करके समाधान मांगा गया हो। यह एक अधिक स्पष्ट समाधान है, और प्रदर्शन के लिए एक स्पष्ट जीत भी है (क्योंकि जटिल नियमित अभिव्यक्तियों को संसाधित करना स्ट्रिंग के एक समूह पर पुनरावृत्ति करने और उनके बिट्स को एक साथ जोड़ने की तुलना में बहुत कठिन काम है)। देखें jsperf.com/camel-casing-regexp-or-character-manipulation/1 जहां मैंने इस उदाहरण के साथ यहां कुछ उदाहरण लिए हैं (और मेरा अपना मामूली उदाहरण भी प्रदर्शन के लिए इसमें सुधार किया गया है, हालांकि ज्यादातर मामलों में स्पष्टता के लिए मैं शायद इस संस्करण को प्राथमिकता दूंगा)।''
दोनों तरीकों की अपनी खूबियां हैं। सुपाबेस कोड में रेगेक्स दृष्टिकोण संक्षिप्त है और शक्तिशाली स्ट्रिंग हेरफेर तकनीकों का लाभ उठाता है। दूसरी ओर, गैर-रेगेक्स दृष्टिकोण की इसकी स्पष्टता और प्रदर्शन के लिए प्रशंसा की जाती है, क्योंकि यह नियमित अभिव्यक्तियों से जुड़े कम्प्यूटेशनल ओवरहेड से बचता है।
यहां बताया गया है कि आप उनके बीच कैसे चयन कर सकते हैं:
मेरे बारे में:क्या आप सीखना चाहते हैं कि शुरुआत से shadcn-ui/ui कैसे बनाएं? जांचें बिल्ड-फ्रॉम-स्क्रैच
लिंक्डइन: https://www.linkedin.com/in/ramu-narasinga-189361128/
जीथब: https://github.com/Ramu-Narasinga
ईमेल: [email protected]
स्क्रैच से shadcn-ui/ui बनाएं
सन्दर्भ:
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3