जावास्क्रिप्ट में रेस्ट ऑपरेटर
इस पाठ की शुरुआत एक स्पष्टीकरण के साथ करते हैं।
इस खंड के सभी पिछले पाठों में मैंने
आपको ... ऑपरेटर के बारे में पूरी सच्चाई नहीं बताई थी।
वास्तव में, कोड में स्थान के आधार पर इस ऑपरेटर को या तो स्प्रेड ऑपरेटर या रेस्ट ऑपरेटर कहा जा सकता है।
जैसा कि आप पहले से ही जानते हैं, जब स्प्रेड ऑपरेटर
किसी सरणी या स्ट्रिंग के सामने होता है, तो यह उन्हें
अलग-अलग मानों में विभाजित कर देता है। रेस्ट ऑपरेटर,
हालांकि इसका सिंटैक्स ... के रूप में समान है,
लेकिन यह दूसरे उद्देश्य के लिए होता है।
अब हम समझेंगे कि किस लिए। मान लीजिए कि हमारे पास एक फ़ंक्शन है जो दो पैरामीटर लेता है:
function func(a, b) {
console.log(a);
console.log(b);
}
आपको पहले से ही पता होना चाहिए कि यदि फ़ंक्शन में अतिरिक्त पैरामीटर पास किए जाते हैं, तो इससे त्रुटि नहीं होगी:
func(1, 2, 3, 4, 5);
rest ऑपरेटर सभी अतिरिक्त पैरामीटर को
एक सरणी के रूप में प्राप्त करने की अनुमति देता है। इसके लिए
फ़ंक्शन में एक और पैरामीटर जोड़ा जाता है (अवश्य ही
अंतिम), जिसके पहले 3 डॉट्स लगाए जाते हैं:
function func(a, b, ...rest) {
}
ये तीन डॉट्स ही रेस्ट ऑपरेटर हैं, और चर का नाम
कोई भी हो सकता है, लेकिन
आमतौर पर इसे rest भी कहा जाता है।
आइए हमारे फ़ंक्शन को अतिरिक्त
मात्रा में पैरामीटर के साथ कॉल करें और देखें कि क्या
a और b पैरामीटर में आता है, और क्या -
शेष rest में:
func(1, 2, 3, 4, 5);
function func(a, b, ...rest) {
console.log(a); // 1 प्रिंट करेगा
console.log(b); // 2 प्रिंट करेगा
console.log(rest); // [3, 4, 5] प्रिंट करेगा
}
यदि अतिरिक्त पैरामीटर नहीं होंगे, तो चर
rest में एक खाली सरणी लिखी जाएगी:
func(1, 2);
function func(a, b, ...rest) {
console.log(a); // 1 प्रिंट करेगा
console.log(b); // 2 प्रिंट करेगा
console.log(rest); // [] प्रिंट करेगा
}
फ़ंक्शन में कोई पैरामीटर नहीं भी हो सकते हैं,
लेकिन इसके साथ ही इसमें rest जोड़ा जा सकता है।
इस मामले में फ़ंक्शन को
किसी भी数量的 पैरामीटर के साथ कॉल किया जा सकता है और वे सभी
सरणी rest में आ जाएंगे:
function func(...rest) {
console.log(rest);
}