मान लीजिए, हमें एक फ़ंक्शन लिखना है, मान लीजिए translate() जो पहले आर्गुमेंट के रूप में एक स्ट्रिंग स्वीकार करता है और उसके बाद कितने भी शब्द।
स्ट्रिंग में वास्तव में n $ चिह्न होंगे जैसे -
This $0 is more $1 just a $2. फिर 3 स्ट्रिंग्स होंगी जो संबंधित स्थानों को प्रतिस्थापित करेंगी।
उदाहरण के लिए -
यदि फ़ंक्शन कॉल इस तरह है -
translate('This $0 is more $1 just a $2.', 'game', 'than', 'game');फ़ंक्शन का आउटपुट होना चाहिए -
This game is more than just a game.
यह कार्यक्षमता जावास्क्रिप्ट में टेम्प्लेट इंजेक्शन की तरह कमोबेश है।
इसलिए, आइए इस फ़ंक्शन के लिए कोड लिखते हैं -
हम यहां String.prototype.replace() मेथड का उपयोग करेंगे। हम जानते हैं कि यदि हम सभी घटनाओं से मेल खाने के लिए एक रेगेक्स पैटर्न का उपयोग करते हैं और दूसरे पैरामीटर के रूप में एक फ़ंक्शन का उपयोग करते हैं, तो यह प्रत्येक मैच के लिए निष्पादित होता है। हम यहां ठीक वही करेंगे।
इसे करने के लिए कोड होगा -
उदाहरण
const str = 'This $0 is more $1 just a $2'; const translate = (str, ...texts) => { const regex = /\$(\d+)/gi; return str.replace(regex, (item, index) => { return texts[index]; }); }; console.log(translate(str, 'game', 'just', 'game'));आउटपुट
कंसोल में आउटपुट होगा -
This game is more just just a game