JavaScript Fundamentals

जावास्क्रिप्ट में फ़ंक्शन आर्ग्यूमेंट्स को सरणी में प्रभावी रूप से बदलना

Spread the love

जावास्क्रिप्ट फलन एक विशेष ऑब्जेक्ट प्रदान करते हैं जिसे arguments कहा जाता है, जो फलन को पास किए गए सभी आर्ग्यूमेंट्स को रखता है, चाहे फलन की पैरामीटर सूची उन्हें स्पष्ट रूप से परिभाषित करे या नहीं। हालाँकि, arguments एक सच्ची ऐरे नहीं है; यह ऐरे जैसी है, जिसमें length प्रॉपर्टी है और संख्यात्मक इंडेक्स के माध्यम से तत्वों तक पहुँच की अनुमति देती है, लेकिन map, filter और reduce जैसी मानक ऐरे विधियों का अभाव है। इसके कारण अक्सर आसान हेरफेर के लिए arguments को एक मानक जावास्क्रिप्ट ऐरे में बदलना आवश्यक होता है।

विषय सूची

arguments ऑब्जेक्ट को समझना

arguments ऑब्जेक्ट किसी भी जावास्क्रिप्ट फलन के अंदर उपलब्ध है। यह ऐरे जैसा है, जिसका अर्थ है कि आप ब्रैकेट नोटेशन (जैसे, arguments[0]) का उपयोग करके इसके तत्वों तक पहुँच सकते हैं, और इसमें आर्ग्यूमेंट्स की संख्या को दर्शाने वाली length प्रॉपर्टी है। हालाँकि, यह एक सच्ची ऐरे नहीं है और Array.prototype से इनहेरिट नहीं करती है, जिससे बिल्ट-इन ऐरे विधियों का उपयोग करने से रोका जाता है।


function myFunc() {
  console.log(arguments); // Arguments ऑब्जेक्ट आउटपुट करता है
  console.log(arguments.length); // आर्ग्यूमेंट्स की संख्या आउटपुट करता है
}

myFunc(1, 2, 3);

रेस्ट पैरामीटर्स (...) का उपयोग करना

सबसे आधुनिक और कुशल तरीका रेस्ट पैरामीटर्स का उपयोग करना है। ES6 में शुरू किए गए, रेस्ट पैरामीटर्स आपको अनिश्चित संख्या में आर्ग्यूमेंट्स को एक वास्तविक ऐरे में इकट्ठा करने की अनुमति देते हैं।


function myFunc(...args) {
  console.log(args); // args एक सच्ची ऐरे है!
  console.log(args.map(x => x * 2)); // ऐरे विधियों का उपयोग करना
}

myFunc(1, 2, 3);

यह विधि संक्षिप्त, पठनीय और अत्यधिक कुशल है। आधुनिक जावास्क्रिप्ट में आर्ग्यूमेंट्स को ऐरे में बदलने के लिए यह अनुशंसित तरीका है।

Array.from() का उपयोग करना

Array.from() विधि ऐरे जैसे या इटरेबल ऑब्जेक्ट से एक नया ऐरे बनाती है, जिससे इसे arguments ऑब्जेक्ट को बदलने के लिए आदर्श बनाया जाता है।


function myFunc() {
  const argsArray = Array.from(arguments);
  console.log(argsArray);
  console.log(argsArray.filter(x => x > 1)); // ऐरे विधियों का उपयोग करना
}

myFunc(1, 2, 3);

Array.from() पुराने ब्राउज़रों के साथ अच्छी संगतता प्रदान करता है जो रेस्ट पैरामीटर्स का समर्थन नहीं कर सकते हैं।

ऐरे लिटरल्स का उपयोग करना

हालांकि पिछली विधियों की तुलना में कम कुशल और कम पठनीय है, आप मैन्युअल रूप से एक ऐरे लिटरल और एक लूप का उपयोग करके एक ऐरे बना सकते हैं।


function myFunc() {
  const argsArray = [];
  for (let i = 0; i < arguments.length; i++) {
    argsArray.push(arguments[i]);
  }
  console.log(argsArray);
}

myFunc(1, 2, 3);

इस विधि को आम तौर पर इसकी वर्बोसिटी और कम प्रदर्शन के कारण हतोत्साहित किया जाता है, खासकर जब बड़ी संख्या में आर्ग्यूमेंट्स से निपटना पड़ता है।

सही विधि चुनना

आधुनिक जावास्क्रिप्ट विकास के लिए, रेस्ट पैरामीटर्स (...args) का उपयोग करना आर्ग्यूमेंट्स को ऐरे में बदलने का पसंदीदा और सबसे कुशल तरीका है। यह संक्षिप्त, पठनीय है और आधुनिक जावास्क्रिप्ट सुविधाओं का लाभ उठाता है। Array.from(arguments) व्यापक ब्राउज़र संगतता के लिए एक उपयुक्त बैकअप प्रदान करता है। ऐरे लिटरल्स का उपयोग करने से बचें जब तक कि कोई बहुत विशिष्ट बाधा अन्य दो विधियों के उपयोग को रोकती न हो।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *