जावास्क्रिप्ट ऑब्जेक्ट्स के गुणों को गतिशील रूप से मर्ज करने के दो तरीके हैं। वे हैं
1) ऑब्जेक्ट.असाइन ()
ऑब्जेक्ट.असाइन () एक या एक से अधिक स्रोत वस्तुओं से लक्ष्य वस्तु में सभी गुणों के मूल्यों की प्रतिलिपि बनाने के लिए विधि का उपयोग किया जाता है। यह लक्ष्य वस्तु . लौटाएगा ।
उदाहरण-1
<html> <body> <script> var target = { a: "ram", b: "rahim" }; var source = { c: "akbar", d: "anthony" }; var returnedTarget = Object.assign(target, source); document.write(JSON.stringify(target)); document.write(JSON.stringify(returnedTarget)); </script> </body> </html>
आउटपुट
{"a":"ram","b":"rahim","c":"akbar","d":"anthony"} {"a":"ram","b":"rahim","c":"akbar","d":"anthony"}
यदि वस्तुओं में समान कुंजियाँ हैं, तो वितरण में बाद में दिखाई देने वाली वस्तु की कुंजी का मान कॉपी किया जाएगा। निम्न उदाहरण उस परिदृश्य को दिखाता है जब विभिन्न मानों के साथ समान कुंजियाँ होती हैं।
उदाहरण-2
<html> <body> <script> var target = { a: "ram", b: "rahim" }; var source = { b: "akbar", d: "anthony" }; var returnedTarget = Object.assign(target, source); document.write(JSON.stringify(target)); document.write("</br>"); document.write(JSON.stringify(returnedTarget)); </script> </body> </html>
आउटपुट
{"a":"ram","b":"akbar","d":"anthony"} {"a":"ram","b":"akbar","d":"anthony"}
2) स्प्रेड ऑपरेटर का उपयोग करना
स्प्रेड ऑपरेटर एक अभिव्यक्ति को उन जगहों पर विस्तारित करने की अनुमति देता है जहां कई तत्व/चर/तर्क अपेक्षित हैं। यह ज्यादातर एक चर सरणी में उपयोग किया जाता है जहां कई मान अपेक्षित होते हैं। चूंकि जावास्क्रिप्ट ऑब्जेक्ट प्रमुख मूल्य युग्मित इकाइयां हैं, इसलिए हम स्प्रेड ऑपरेटर का उपयोग करके उन्हें एक में मर्ज कर सकते हैं।
वाक्यविन्यास
var target = [...obj1, ...obj2, ...]
उदाहरण
<html> <body> <script> var target = { a: "ram", b: "rahim" }; var source = { b: "akbar", d: "anthony" }; var returnedTarget = {...target, ...source} document.write(JSON.stringify(returnedTarget)); </script> </body> </html>
आउटपुट
{"a":"ram","b":"akbar","d":"anthony"}