2 cách merge object động:
1) Object.assign()
Sao chép property từ source object(s) vào target object. Trả về target object.
Ví dụ 1: Key khác nhau
<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>
Kết quả
{"a":"ram","b":"rahim","c":"akbar","d":"anthony"} {"a":"ram","b":"rahim","c":"akbar","d":"anthony"}
Ví dụ 2: Key trùng lặp (source ghi đè target)
<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) + "</br>"); document.write(JSON.stringify(returnedTarget)); </script> </body> </html>
Kết quả
{"a":"ram","b":"akbar","d":"anthony"} {"a":"ram","b":"akbar","d":"anthony"}
2) Spread Operator (...)
Mở rộng object thành các cặp key-value, merge thành object mới.
Cú pháp
var merged = {...obj1, ...obj2, ...}
Ví dụ
<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>
Kết quả
{"a":"ram","b":"akbar","d":"anthony"}