如何動態合併兩個 JavaScript 物件的屬性?


有兩種方法可以動態合併 javascript 物件的屬性。它們是

1) Object.assign() 

Object.assign() 方法用於從一個或多個源物件複製所有屬性的值到目標物件。它將返回目標物件

示例-1

 Live Demo

<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

Live Demo

<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, ...]

示例

Live Demo

<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"}

更新時間: 30-7-2019

264 瀏覽量

開啟你的 職業

完成課程,獲得認證

開始
廣告