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

| | | | | | | | | | | | | | | | | | | | | |

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

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

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

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

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

हमारा कोड रिटर्न:

मैं ऐसा लगता है कि हमारी तालिका की प्रतिलिपि बनाई गई है। "फ्रूट" में हमारे "बेरीज़" एरे से सभी मान शामिल हैं। "wp-block -codemirror-blocks-code-block code-block" >

fruits.push ("खरबूज"); कंसोल.लॉग (फल); कंसोल.लॉग (सरणी); 

हमने फलों की शृंखला में "खरबूज" जोड़ा है। इसके बाद, हम के लिए "फलों" और "बेरीज़" के मानों को कंसोल पर प्रिंट करते हैं:

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

हर बार जब हम "बेरी" सरणी में हेरफेर करते हैं, तो "फल" सरणी के क्षेत्र में परिवर्तन किए जाएंगे।

JavaScript सरणी की प्रतिलिपि कैसे करें

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

आइए कैसे इस्तेमाल करें इस पर एक-एक करके चर्चा करें।

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

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

ऑपरेटर स्प्रेड में एक दीर्घवृत्त के रूप में तीन बिंदु होते हैं (& helip;).. आइए पहले से हमारे "बेरी" सरणी की एक प्रति बनाएँ:

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

हमारा कोड रिटर्न:

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

लूप का उपयोग करना

सिद्ध, लूप के लिए उपयोग करना पेंटिंग की प्रतिलिपि बनाने का एक अच्छा तरीका है।

यह प्रोपेगेशन ऑपरेटर के रूप में विधि को प्राथमिकता नहीं दी जा सकती है क्योंकि इसके लिए कोड की कई पंक्तियों की आवश्यकता होती है। हालाँकि, लूप के लिए एक वस्तु की प्रतिलिपि बनाता है।

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

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

हमारा कोड रिटर्न:

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

Array.from ()

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

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

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

हमारा कोड रिटर्न:

हमारी टेबल सफलतापूर्वक कॉपी कर ली गई है।

निष्कर्ष

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