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

JavaScript में ऑब्जेक्ट्स कॉपी करने की विभिन्न तकनीकें


किसी भी भाषा में ऑब्जेक्ट्स कॉपी करने के 2 तरीके हैं: डीप कॉपी और शैलो कॉपी।

शैलो कॉपी और डीप कॉपी भाषा-अज्ञेय हैं। शैलो कॉपीज जितना संभव हो उतना कम डुप्लीकेट करती हैं। एक कलेक्शन की शैलो कॉपी कलेक्शन स्ट्रक्चर की कॉपी है, एलिमेंट्स की नहीं। शैलो कॉपी के साथ, दो कलेक्शन अब व्यक्तिगत एलिमेंट्स साझा करते हैं।

उदाहरण

let innerObj = { a: 'b', c: 'd' } let obj = { x: "test", y: innerObj } // शैलो कॉपी बनाएं। let copyObj = Object.assign({}, obj); // copyObj और obj दोनों का प्रॉप y अब उसी innerObj को रेफर करता है। इसमें कोई भी परिवर्तन प्रतिबिंबित होगा। innerObj.a = "test" console.log(obj) console.log(copyObj)

आउटपुट

यह आउटपुट देगा:

{ x: 'test', y: { a: 'test', c: 'd' } } { x: 'test', y: { a: 'test', c: 'd' } }

ध्यान दें कि शैलो कॉपीज रिकर्सिवली क्लोन नहीं करतीं। यह केवल टॉप लेवल पर करता है।

डीप कॉपीज सब कुछ डुप्लीकेट करती हैं। एक कलेक्शन की डीप कॉपी मूल कलेक्शन में सभी एलिमेंट्स के क्लोन के साथ दो कलेक्शन होती है।

उदाहरण

let innerObj = { a: 'b', c: 'd' } let obj = { x: "test", y: innerObj } // डीप कॉपी बनाएं। let copyObj = JSON.parse(JSON.stringify(obj)) // copyObj और obj दोनों का प्रॉप y अब उसी innerObj को रेफर करता है। इसमें कोई भी परिवर्तन प्रतिबिंबित होगा। innerObj.a = "test" console.log(obj) console.log(copyObj)

आउटपुट

यह आउटपुट देगा:

{ x: 'test', y: { a: 'test', c: 'd' } } { x: 'test', y: { a: 'b', c: 'd' } }
  1. जावास्क्रिप्ट में for...in स्टेटमेंट समझाया गया जावास्क्रिप्ट में for...in स्टेटमेंट समझाया गया

    for...in लूप ऑब्जेक्ट की सभी प्रॉपर्टीज के माध्यम से लूप करता है। जावास्क्रिप्ट में for..in स्टेटमेंट को लागू करने का कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0

  1. जावास्क्रिप्ट में ऑब्जेक्ट्स की समानता समझाएं जावास्क्रिप्ट में ऑब्जेक्ट्स की समानता समझाएं

    जावास्क्रिप्ट में प्रिमिटिव्स जैसे स्ट्रिंग, नंबर, बूलियन आदि की तुलना उनके मानों द्वारा की जाती है जबकि ऑब्जेक्ट्स (नेटिव या कस्टम) की तुलना उनके रेफरेंस द्वारा की जाती है। रेफरेंस द्वारा तुलना का अर्थ है कि दो या अधिक ऑब्जेक्ट्स मेमोरी में एक ही स्थान को इंगित करते हैं या नहीं। जावास्क्रिप्ट में

  1. जावास्क्रिप्ट में ऑब्जेक्ट्स के लिए रिड्यूस मेथड कैसे लागू करें? जावास्क्रिप्ट में ऑब्जेक्ट्स के लिए रिड्यूस मेथड कैसे लागू करें?

    जावास्क्रिप्ट में ऑब्जेक्ट्स पर रिड्यूस मेथड लागू करने के लिए निम्नलिखित कोड है: उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <