जावास्क्रिप्ट में ऑब्जेक्ट को डीप क्लोन करने का सबसे प्रभावी तरीका
सभी को नमस्कार! मैं जावास्क्रिप्ट में नया हूँ और ऑब्जेक्ट कॉपी करते समय एक समस्या का सामना कर रहा हूँ। मुझे ऑब्जेक्ट की पूरी तरह से स्वतंत्र कॉपी बनानी है, ताकि कॉपी में बदलाव मूल को प्रभावित न करें। लेकिन सामान्य असाइनमेंट काम नहीं करता — कॉपी बस उसी ऑब्जेक्ट को संदर्भित करती है।
यहाँ मेरे कोड का उदाहरण है:
```javascript
const original = {
name: "Алиса",
age: 30,
address: {
city: "Москва",
zip: 101000
},
hobbies: ["чтение", "плавание"]
};
// कॉपी करने का प्रयास
const copy = original;
copy.name = "Боб";
copy.address.city = "Санкт-Петербург";
console.log(original.name); // "Боб" — ओह, बदल गया!
console.log(original.address.city); // "Санкт-Петербург" — यह भी बदल गया!
```
मैंने `Object.assign()` और spread ऑपरेटर `{...obj}` का उपयोग करने की कोशिश की, लेकिन वे केवल शैलो कॉपी बनाते हैं। नेस्टेड ऑब्जेक्ट और arrays अभी भी जुड़े रहते हैं। उदाहरण के लिए:
```javascript
const copy2 = {...original};
copy2.address.city = "Казань";
console.log(original.address