Computer >> Máy Tính >  >> Lập trình >> Javascript

Làm cách nào để hợp nhất động các thuộc tính của hai Đối tượng JavaScript?

Có hai phương pháp để hợp nhất động các thuộc tính của các đối tượng javascript. Họ là

1) Object.assign ()

Object.assign () phương thức được sử dụng để sao chép các giá trị của tất cả các thuộc tính từ một hoặc nhiều đối tượng nguồn sang một đối tượng đích. Nó sẽ trả về đối tượng đích .

Ví dụ-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>

đầu ra

{"a":"ram","b":"rahim","c":"akbar","d":"anthony"}
{"a":"ram","b":"rahim","c":"akbar","d":"anthony"}


Nếu các đối tượng có cùng khóa, thì giá trị của khóa của đối tượng xuất hiện sau đó trong phân phối sẽ được sao chép. Ví dụ sau đây hiển thị kịch bản khi có các khóa giống nhau với các giá trị khác nhau.

Ví dụ-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>

Đầu ra

{"a":"ram","b":"akbar","d":"anthony"}
{"a":"ram","b":"akbar","d":"anthony"}

2) Sử dụng toán tử spread

Toán tử spread cho phép một biểu thức được mở rộng ở những nơi có nhiều phần tử / biến / đối số được mong đợi. Nó chủ yếu được sử dụng trong một mảng biến nơi có nhiều giá trị được mong đợi. Vì các đối tượng javascript là các thực thể được ghép nối giá trị chính, chúng tôi có thể hợp nhất chúng thành một bằng cách sử dụng toán tử spread.

cú pháp

var target = [...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>

Đầu ra

{"a":"ram","b":"akbar","d":"anthony"}