Avatar ·

الطريقة الأكثر فعالية للنسخ العميق لكائن في JavaScript

مرحباً بالجميع! أنا مبتدئ في JavaScript وواجهت مشكلة عند نسخ الكائنات. أحتاج إلى إنشاء نسخة مستقلة من الكائن بحيث لا تؤثر التغييرات في النسخة على الأصل. إليك مثال على الكود الذي لا يعمل معي: ```javascript const original = { name: 'Анна', age: 25, address: { city: 'Москва', street: 'Ленина' }, hobbies: ['чтение', 'спорт'] }; const copy = original; copy.name = 'Мария'; copy.address.city = 'СПб'; console.log(original.name); // 'Мария' — تغير! console.log(original.address.city); // 'СПб' — تغير أيضاً! ``` حاولت استخدام `Object.assign()` وعامل الانتشار (spread operator): ```javascript const copy2 = Object.assign({}, original); const copy3 = {...original}; copy2.address.city = 'Казань'; console.log(original.address.city); // 'Казань' — تغير مرة أخرى! ``` المشكلة هي أن الكائنات والمصفوفات المتداخلة تُنسخ بالمرجع. سمعت عن `JSON.parse(JSON.stringify())`، لكن يقولون إنه...