Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में दूसरी स्ट्रिंग में मौजूद कैरेक्टर्स को पहली स्ट्रिंग से कैसे हटाएं?

split(''), reduce(), और replace() का उपयोग करके दूसरी स्ट्रिंग के प्रत्येक कैरेक्टर को पहली स्ट्रिंग से हटाएं।

बुनियादी समाधान

const removeChars = (removalStr, originalStr) => 
    removalStr.split('').reduce((acc, char) => acc.replace(char, ''), originalStr);

const original = "JOHNDOE";
const removal = "JOHN";

console.log(removeChars(removal, original)); // "DOE"

चरण-दर-चरण

// 1. removalStr को कैरेक्टर ऐरे में बदलें
"JOHN".split('')  // ['J', 'O', 'H', 'N']

// 2. reduce से प्रत्येक कैरेक्टर को originalStr से हटाएं
.reduce((acc, char) => acc.replace(char, ''), "JOHNDOE")

// प्रक्रिया:
// 'J' → "OHNDOE"
// 'O' → "HNDOE"
// 'H' → "NDOE"
// 'N' → "DOE"

समस्या: replace() केवल पहली घटना बदलता है

const original = "BANANA";
const removal = "AN";

// वर्तमान कोड:
console.log(removeChars(removal, original)); // "BANA" (केवल पहला A,N हटा)

// सुधार: ग्लोबल रेगएक्स
const removeCharsGlobal = (removal, original) => 
    removal.split('').reduce(
        (acc, char) => acc.replace(new RegExp(char, 'g'), ''), 
        original
    );

console.log(removeCharsGlobal("AN", "BANANA")); // "B" (सभी A,N हटे)

बेहतर: Set + filter (अधिक कुशल)

function removeCharsSet(removal, original) {
    const removeSet = new Set(removal);
    return [...original].filter(char => !removeSet.has(char)).join('');
}

console.log(removeCharsSet("JOHN", "JOHNDOE")); // "DOE"
console.log(removeCharsSet("AN", "BANANA"));    // "B"

चलाने का तरीका

node remove-chars.js

आउटपुट

DOE

तुलना

विधिसभी घटनाएंप्रदर्शननोट्स
reduce + replaceनहीं (पहली)धीमासरल
reduce + regex(g)हांमध्यमरेगएक्स ओवरहेड
Set + filterहांतेज़ O(n+m)अनुशंसित

विशेष कैरेक्टर्स एस्केप करें

function escapeRegex(str) {
    return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}

function removeCharsSafe(removal, original) {
    const removeSet = new Set(removal);
    return [...original].filter(c => !removeSet.has(c)).join('');
    // Set तरीके में एस्केप की जरूरत नहीं
}
  1. JavaScript से एलिमेंट से क्लास नाम कैसे हटाएं? JavaScript से एलिमेंट से क्लास नाम कैसे हटाएं?

    JavaScript से एलिमेंट से क्लास नाम हटाने के लिए, निम्न कोड का उपयोग करें: उदाहरण <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style>    .newStyle {       font-family: &

  1. - JavaScript में जांचना कि एक स्ट्रिंग दूसरी से एक बदलाव से प्राप्त हो सकती है

    हमें एक JavaScript फ़ंक्शन लिखना है जो दो वर्ण स्ट्रिंग्स लेता है, आइए उन्हें str1 और str2 कहते हैं। फ़ंक्शन को जांचना चाहिए कि क्या हम str1 से ठीक एक वर्ण हटाकर str2 बना सकते हैं। यदि हम ऐसा कर सकते हैं तो फ़ंक्शन को true लौटाना चाहिए, अन्यथा false। उदाहरण यदि इनपुट स्ट्रिंग्स हैं: const str1 = che

  1. - JavaScript में दो विशिष्ट वर्णों वाली सबसे लंबी स्ट्रिंग

    हमें एक JavaScript फ़ंक्शन लिखना है जो पहली आर्गुमेंट के रूप में एक स्ट्रिंग और दूसरी आर्गुमेंट के रूप में एक संख्या (स्ट्रिंग की लंबाई से छोटी) लेता है। फ़ंक्शन को मूल स्ट्रिंग से वर्णों को हटाकर एक नई स्ट्रिंग तैयार करनी चाहिए जैसे कि यह अधिकतम दो विशिष्ट वर्णों वाली सबसे लंबी स्ट्रिंग हो। अंत में