Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melakukan JOIN seperti SQL pada Dua Tatasusunan JavaScript?
Cara Menggabungkan Dua Tatasusunan JavaScript Berdasarkan Kunci Sepunya, Serupa dengan SQL JOIN
Apabila berurusan dengan data dalam JavaScript, anda boleh menghadapi situasi di mana anda mempunyai berbilang tatasusunan yang mengandungi maklumat berkaitan dan anda ingin menggabungkannya berdasarkan atribut biasa. Dalam konteks ini, operasi SQL JOIN boleh berguna untuk menggabungkan data daripada berbilang jadual dan kita boleh mencapai kefungsian yang serupa dalam JavaScript menggunakan teknik manipulasi tatasusunan.
Katakanlah kita mempunyai dua tatasusunan: UserProfiles dan soalan. userProfiles mengandungi objek dengan sifat id dan nama, manakala soalan mengandungi objek dengan id, teks dan sifat diciptaBy. Sifat createdBy dalam soalan sepadan dengan nilai id dalam userProfiles.
Matlamat kami adalah untuk "menyertai" tatasusunan ini untuk mencipta tatasusunan baharu yang mengandungi objek dengan sifat id, teks dan nama. Dalam SQL, operasi ini akan diwakili oleh pertanyaan berikut:
SELECT u.id, q.text, u.name FROM userProfiles u JOIN questions q ON q.createdBy=u.id
Dalam JavaScript, kami boleh melaksanakan gabungan menggunakan kaedah reduce() dan concat(). Berikut ialah contoh menggunakan fungsi innerJoin:
const innerJoin = (xs, ys, sel) => xs.reduce((zs, x) => ys.reduce((zs, y) => // cartesian product - all combinations zs.concat(sel(x, y) || []), // filter out the rows and columns you want zs), []);
Menggunakan fungsi ini, kita boleh melakukan cantuman seperti berikut:
const result = innerJoin(userProfiles, questions, ({id: uid, name}, {id, text, createdBy}) => createdBy === uid && {id, text, name});
Fungsi innerJoin ini pada asasnya melaksanakan produk Cartesian daripada dua tatasusunan , dan untuk setiap pasangan objek, ia menyemak sama ada harta createdBy dalam soalan sepadan dengan sifat id dalam userProfiles. Jika ia sepadan, ia mengembalikan objek dengan sifat yang diingini.
Susun atur hasil yang terhasil akan mengandungi objek dalam format berikut:
{ id, text, name }
Pendekatan ini membolehkan anda menggabungkan data daripada berbilang tatasusunan berdasarkan kunci biasa, serupa dengan operasi SQL JOIN. Dengan memanfaatkan keupayaan manipulasi tatasusunan JavaScript, anda boleh mencapai transformasi data yang cekap dan fleksibel untuk aplikasi anda.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan JOIN seperti SQL pada Dua Tatasusunan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!