如何動態合併兩個 JavaScript 物件的屬性?
有兩種方法可以動態合併 javascript 物件的屬性。它們是
1) Object.assign()
Object.assign() 方法用於從一個或多個源物件複製所有屬性的值到目標物件。它將返回目標物件。
示例-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) 使用擴充套件運算子
擴充套件運算子允許在期望有多個元素/變數/引數的地方擴充套件表示式。它主要用於在期望出現多個值的變數陣列中。由於 javascript 物件是關鍵值成對的實體,因此我們可以使用擴充套件運算子將它們合併為一個。
語法
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"}
廣告