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

जावास्क्रिप्ट कॉपी ऐरे:एक गाइड

जावास्क्रिप्ट में, एक सरणी की प्रतिलिपि बनाना उतना आसान नहीं है जितना कि एक डुप्लिकेट बनाने के लिए असाइनमेंट ऑपरेटर (=) का उपयोग करना। यदि आपने कभी यह कोशिश की है, तो आपको यह जानकर आश्चर्य होगा कि यह केवल मूल सूची का लिंक बनाता है। क्या बात है?

इस गाइड में, हम इस बारे में बात करने जा रहे हैं कि जावास्क्रिप्ट ऐरे को कैसे कॉपी किया जाए। हम तीन JavaScript कॉपी सरणी रणनीतियों के लिए कोड के माध्यम से चलेंगे ताकि आप सरणियों की प्रतिलिपि बनाना शुरू कर सकें।

JavaScript सरणियों को कॉपी करने में समस्या

कुछ स्तर पर, "=" ऑपरेटर एक सरणी की एक प्रति को एक नए चर में बनाता है। हालांकि यह एक प्रति से अधिक सूचक है। ऐसा इसलिए है क्योंकि "=" ऑपरेटर एक मूल सरणी का संदर्भ बनाता है। यह मौजूदा सरणी का डुप्लिकेट नहीं बनाता है।

आइए बिना किसी अन्य कोड के असाइनमेंट ऑपरेटर का उपयोग करके एक सरणी की एक प्रति बनाने का प्रयास करें:

var बेरी =["स्ट्रॉबेरी", "आंवला", "रास्पबेरी"];var फल =बेरी;कंसोल.लॉग(फल);

हमारा कोड लौटाता है:

[ "स्ट्रॉबेरी", "आंवला", "रास्पबेरी" ]

ऐसा लगता है कि हमारी सरणी की प्रतिलिपि बनाई गई है। "फलों" में हमारे "बेरीज़" सरणी के सभी मान शामिल हैं।

अब, "फल" सरणी में एक आइटम जोड़ने का प्रयास करते हैं:

फ्रूट्स.पुश("मेलन");कंसोल.लॉग(फ्रूट्स);कंसोल.लॉग(बेरी);

हमने फलों की श्रेणी में "खरबूज" जोड़ा है। फिर हम कंसोल पर "फलों" और "बेरीज़" के मानों का प्रिंट आउट लेते हैं:

81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।

बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।

[ "स्ट्रॉबेरी", "आंवला", "रास्पबेरी", "मेलन"] ["स्ट्रॉबेरी", "आंवला", "रास्पबेरी", "मेलन"]

"फल" और "बेरीज़" दोनों में समान मूल्य होते हैं। ऐसा इसलिए है क्योंकि हमने तकनीकी रूप से अपने एरे का क्लोन नहीं बनाया है। हमने अभी इसका संदर्भ बनाया है।

जब भी हम "बेरीज़" एरे में हेरफेर करते हैं, तो "फ्रूट्स" एरे में बदलाव किए जाएंगे।

जावास्क्रिप्ट ऐरे को कैसे कॉपी करें

असाइनमेंट ऑपरेटर एक सरणी की प्रतिलिपि नहीं बनाता है। हमें दूसरे तरीके का इस्तेमाल करना होगा। सौभाग्य से हमारे लिए, सरणी की प्रतिलिपि बनाने के कई तरीके हैं। शीर्ष तीन दृष्टिकोण हैं:

  • स्प्रेड ऑपरेटर का उपयोग करना
  • लूप के लिए उपयोग करना
  • Array.from का उपयोग करना

आइए इन पर एक-एक करके चर्चा करें।

स्प्रेड ऑपरेटर का उपयोग करना

स्प्रेड ऑपरेटर जावास्क्रिप्ट ES6 में पेश की गई एक विशेषता है। यह आपको एक पुनरावृत्त वस्तु की सामग्री तक पहुँचने की अनुमति देता है। इस ऑपरेटर का उपयोग अक्सर किसी सरणी की उथली प्रतिलिपि बनाने के लिए किया जाता है।

स्प्रेड ऑपरेटर में इलिप्सिस (...) की तरह तीन बिंदु होते हैं। आइए पहले से हमारे "बेरीज़" सरणी की एक प्रति बनाने का प्रयास करें:

var बेरी =["स्ट्रॉबेरी", "आंवला", "रास्पबेरी"];var फल =[...बेरी];फ्रूट्स.पुश ("मेलन");

हमने अपने सरणी की एक प्रति बनाने के लिए स्प्रेड ऑपरेटर का उपयोग किया है। यह सुनिश्चित करने के लिए कि वे सही हैं, हमारे सरणियों के मानों की जाँच करें:

console.log(बेरी);console.log(फल);

हमारा कोड लौटाता है:

[ "स्ट्रॉबेरी", "आंवला", "रास्पबेरी"] ["स्ट्रॉबेरी", "आंवला", "रास्पबेरी", "मेलन"]

मूल्य "खरबूज" केवल "फल" सरणी में जोड़ा गया था। ऐसा इसलिए है क्योंकि हमने "बेरीज़" सरणी का डुप्लिकेट बनाने के लिए स्प्रेड ऑपरेटर का उपयोग किया था। अब, "फलों" सरणी का अपना सरणी है। इसके मान "बेरीज़" सरणी से अलग हैं।

लूप के लिए उपयोग करना

कोशिश की गई और सही विधि, लूप के लिए एक सरणी की एक प्रति बनाने का एक अच्छा तरीका है।

यह विधि स्प्रेड ऑपरेटर की तरह पसंदीदा नहीं हो सकती है क्योंकि इसके लिए कोड की अधिक पंक्तियों की आवश्यकता होती है। इसके साथ ही, लूप के लिए किसी ऑब्जेक्ट को अच्छी तरह से कॉपी करता है।

var बेरी =["स्ट्रॉबेरी", "आंवला", "रास्पबेरी"];var फल =[]; के लिए (var i =0; i <बेरी.लेंथ; i++) {फल [i] =बेरी[i ]} 

हमने दो सूचियां घोषित की हैं:जामुन और फल। फल शुरू में एक खाली सूची है। फिर, हमने "बेरीज़" सूची में प्रत्येक आइटम के माध्यम से लूप के लिए लूप का उपयोग किया है। सूची में प्रत्येक आइटम के लिए, मान को "फल" सरणी में कॉपी किया जाता है।

आइए यह देखने के लिए अपना परीक्षण चलाएं कि क्या हमारे सरणियाँ अलग हैं:

फ्रूट्स.पुश("ग्रेपफ्रूट");कंसोल.लॉग(बेरी);कंसोल.लॉग(फ्रूट्स);

हमारा कोड लौटाता है:

[ "स्ट्रॉबेरी", "आंवला", "रास्पबेरी" ][ "स्ट्रॉबेरी", "आंवला", "रास्पबेरी", "ग्रेपफ्रूट"]

सफलता! "बेरीज़" और "फ्रूट" दो अलग-अलग सरणियाँ हैं।

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

Array.from() विधि किसी भी चलने योग्य वस्तु को सरणी में बदल देती है। यह प्रत्येक आइटम के माध्यम से एक चलने योग्य में जाता है और इसे एक नई सरणी में जोड़ता है। इसका मतलब है कि इसका उपयोग किसी सरणी को कॉपी करने के लिए किया जा सकता है।

आइए फिर से हमारे "बेरीज़" एरे की एक कॉपी बनाएं:

var बेरी =["स्ट्रॉबेरी", "आंवला", "रास्पबेरी"];var फल =Array.from(बेरी);

यह समाधान, स्प्रेड ऑपरेटर सिंटैक्स की तरह, कोड की केवल दो पंक्तियाँ लेता है। यह किसी सरणी को कॉपी करने का एक कुशल और संक्षिप्त तरीका है। अब, हमारे नए सरणियों की जाँच के लिए एक परीक्षण चलाते हैं:

फ्रूट्स.पुश("अनानास");कंसोल.लॉग(बेरी);कंसोल.लॉग(फ्रूट्स);

हमारा कोड लौटाता है:

[ "स्ट्रॉबेरी", "आंवला", "रास्पबेरी"] ["स्ट्रॉबेरी", "आंवला", "रास्पबेरी", "अनानास"]

हमारे सरणियों को सफलतापूर्वक कॉपी कर लिया गया है।

निष्कर्ष

जब आप जानते हैं कि जावास्क्रिप्ट में एक सरणी की प्रतिलिपि बनाना आसान है।

यदि आप किसी सरणी का एक अलग संस्करण बनाना चाहते हैं, तो असाइनमेंट ऑपरेटर एक सरणी की प्रतिलिपि बनाने के लिए पर्याप्त नहीं है। ऐसा इसलिए है क्योंकि असाइनमेंट ऑपरेटर मौजूदा सरणी के लिए एक पॉइंटर बनाता है; यह एक नई सरणी नहीं बनाता है।

आप स्प्रेड ऑपरेटर, लूप के लिए या Array.from() का उपयोग करके सरणी की एक प्रति बना सकते हैं तरीका। अब आप एक विशेषज्ञ की तरह जावास्क्रिप्ट में सरणियों को कॉपी करने के लिए तैयार हैं।


  1. जावास्क्रिप्ट में ऐरे शिफ्ट ()

    जावास्क्रिप्ट ऐरे शिफ्ट () फ़ंक्शन सरणी से पहले तत्व को हटा देता है - सरणी शिफ्ट () फ़ंक्शन के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } .नमूना { फ़ॉन्ट-आकार:20px; फ़ॉन्ट-वजन:500; }JavaScript Array Shiftयहां क्लिक करें सरणी से

  1. जावास्क्रिप्ट में ऐरे रिवर्स ()

    जावास्क्रिप्ट ऐरे रिवर्स () फ़ंक्शन एक सरणी में तत्वों के क्रम को उलट देता है सरणी रिवर्स () फ़ंक्शन के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=

  1. जावास्क्रिप्ट में ऐरे डी-स्ट्रक्चरिंग।

    एक सरणी से अनपैक मानों को नष्ट करना। जावास्क्रिप्ट में सरणी डी-स्ट्रक्चरिंग के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scal