Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menggabungkan Dua Tatasusunan JavaScript Objek dengan Cekap?

Bagaimana untuk Menggabungkan Dua Tatasusunan JavaScript Objek dengan Cekap?

Linda Hamilton
Linda Hamiltonasal
2024-11-15 09:09:02275semak imbas

How to Efficiently Merge Two JavaScript Arrays of Objects?

Menggabungkan Tatasusunan Objek dalam JavaScript

Andaikan anda mempunyai dua tatasusunan objek:

var arr1 = [
  { name: "lang", value: "English" },
  { name: "age", value: "18" },
];

var arr2 = [
  { name: "childs", value: "5" },
  { name: "lang", value: "German" },
];

Anda mahu gabungkan tatasusunan ini menjadi satu tatasusunan:

var arr3 = [
  { name: "lang", value: "German" },
  { name: "age", value: "18" },
  { name: "childs", value: "5" },
];

Kaedah $.extend() jQuery

Anda boleh mempertimbangkan untuk menggunakan $.extend() pada mulanya. Walau bagaimanapun, ia tidak memenuhi keperluan anda, kerana ia hanya mengemas kini tatasusunan pertama:

$.extend(arr1, arr2); // arr4 = [{name : "childs", value: '5'}, {name: "lang", value: "German"}]

Menggunakan Array.prototype.push.apply()

Lagi cara berkesan untuk menggabungkan tatasusunan adalah dengan menggunakan Array.prototype.push.apply():

Array.prototype.push.apply(arr1, arr2);

Barisan kod ini pada asasnya menolak unsur arr2 ke hujung arr1. Hasilnya ialah tatasusunan bercantum yang disimpan dalam arr1.

// Example

var arr1 = [
  { name: "lang", value: "English" },
  { name: "age", value: "18" },
];

var arr2 = [
  { name: "childs", value: "5" },
  { name: "lang", value: "German" },
];

Array.prototype.push.apply(arr1, arr2);

console.log(arr1); // final merged result will be in arr1

Output:

[
  { name: "lang", value: "English" },
  { name: "age", value: "18" },
  { name: "childs", value: "5" },
  { name: "lang", value: "German" },
]

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Dua Tatasusunan JavaScript Objek dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn