Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menggabungkan Dua Tatasusunan Objek Dengan Cekap Berdasarkan Kekunci Tanpa Mengulangi Kekunci Objek?

Bagaimana untuk Menggabungkan Dua Tatasusunan Objek Dengan Cekap Berdasarkan Kekunci Tanpa Mengulangi Kekunci Objek?

Barbara Streisand
Barbara Streisandasal
2024-12-29 02:43:14360semak imbas

How to Efficiently Merge Two Object Arrays Based on a Key Without Iterating Object Keys?

Menggabungkan Tatasusunan Objek Berdasarkan Kekunci tanpa Mengulangi Kekunci Objek

Pertimbangkan senario mempunyai dua tatasusunan objek:

const array1 = [
  { id: "abdc4051", date: "2017-01-24" },
  { id: "abdc4052", date: "2017-01-22" }
];

const array2 = [
  { id: "abdc4051", name: "ab" },
  { id: "abdc4052", name: "abc" }
];

Matlamat kami adalah untuk menggabungkan tatasusunan ini berdasarkan sifat id, menghasilkan tatasusunan yang menggabungkan sifat kedua-duanya objects:

[
  { id: "abdc4051", date: "2017-01-24", name: "ab" },
  { id: "abdc4052", date: "2017-01-22", name: "abc" }
]

Untuk mencapai ini dengan cekap tanpa menggunakan gelung pada kekunci Objek, kita boleh menggunakan fungsi map():

const mergedArray = array1.map((item, index) => Object.assign({}, item, array2[index]));

Pendekatan ini menggunakan Object.assign() kaedah untuk menggabungkan sifat objek yang sepadan daripada kedua-dua tatasusunan menjadi objek gabungan baharu, yang kemudiannya terkumpul ke dalam mergedArray.

Array gabungan yang terhasil memenuhi keperluan kami untuk menggabungkan sifat berdasarkan kunci id yang dikongsi, tanpa memerlukan gelung berulang ke atas kekunci Objek.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Dua Tatasusunan Objek Dengan Cekap Berdasarkan Kekunci Tanpa Mengulangi Kekunci Objek?. 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