हमें एक फ़ंक्शन लिखने की आवश्यकता है, जैसे isEqual() जो तर्क के रूप में दो स्ट्रिंग लेता है और जांचता है कि क्या उन दोनों में उनके क्रम और मामले से स्वतंत्र समान वर्ण हैं।
उदाहरण के लिए -
const first ='Aavsg';const second ='VSAAg';isEqual(first, second); // सच
विधि:1 सरणियों का उपयोग करना
इस पद्धति में हम स्ट्रिंग्स को सरणियों में परिवर्तित करते हैं, Array.prototype.sort() विधि का उपयोग करते हैं, उन्हें वापस स्ट्रिंग्स में परिवर्तित करते हैं और समानता की जांच करते हैं।
इसके लिए कोड होगा -
उदाहरण
const first ='Aavsg';const second ='VSAAg';const stringSort =function(){ return this.split("").sort().join("");}String.prototype.sort =stringSort;const isEqual =(पहला, दूसरा) => first.toLowerCase().sort() ===second.toLowerCase().sort();console.log(isEqual(first, second));
विधि 2:मानचित्र का उपयोग करना
इस विधि में हम एक ही समय में दोनों स्ट्रिंग्स पर पुनरावृति करते हैं, कैरेक्टर फ़्रीक्वेंसी को एमैप में इस तरह के मानों के साथ स्टोर करते हैं -
-1, अगर यह पहली स्ट्रिंग में दिखाई देता है, +1, अगर यह दूसरी स्ट्रिंग में दिखाई देता है,
अंत में, यदि सभी कुंजियों का योग 0 हो जाता है, तो हम यह निष्कर्ष निकालते हैं कि तार समान हैं अन्यथा नहीं।
इसके लिए कोड होगा -
उदाहरण
const first ='Aavsg';const second ='VSAAg';const isEqual =(first, second) => {if(first.length !==second.length){ return false; } पहले =पहले.toLowerCase (); दूसरा =दूसरा। toLowerCase (); कॉन्स्ट मैप ={}; के लिए (इंड इन फर्स्ट) {अगर (नक्शा [पहला [इंड]]) {नक्शा [पहला [इंड]] ++; } और {नक्शा [प्रथम [इंड]] =1; } अगर (नक्शा [दूसरा [इंड]]) {नक्शा [दूसरा [इंड]]--; } और {नक्शा [दूसरा [इंड]] =-1; } }; वापसी Object.values(map).reduce((acc, val) => val ===0 &&acc, true);};console.log(isEqual(first, second));
आउटपुट
दोनों के लिए कंसोल में आउटपुट होगा -
<पूर्व>सत्य