Mengira produk Cartesan berbilang tatasusunan ialah tugas biasa dalam pengaturcaraan. Ia melibatkan gabungan elemen daripada setiap tatasusunan untuk mencipta tatasusunan baharu yang mengandungi semua gabungan yang mungkin. Untuk mencapai matlamat ini dalam JavaScript, kami boleh menggunakan pelbagai pendekatan.
Satu pendekatan yang ringkas tetapi lapuk memerlukan lelaran pada setiap tatasusunan dan menjana semua kombinasi yang mungkin secara manual. Walau bagaimanapun, kaedah ini menjadi tidak cekap untuk set data yang besar. Sebaliknya, kami boleh memanfaatkan teknik lanjutan dalam ES6 dan ES2019 untuk memudahkan proses dengan ketara.
Dengan pengenalan flatMap pada ES2019, kami boleh mengurangkan pengiraan produk Cartesian kepada satu baris ringkas daripada kod:
const cartesian = (...a) => a.reduce((a, b) => a.flatMap(d => b.map(e => [d, e].flat())));
Untuk menggambarkan, mari kita pertimbangkan contoh yang diberikan dalam soalan anda:
const output = cartesian([1, 2], [10, 20], [100, 200, 300]);
Arahan ini menjana produk Cartesian berikut:
[ [ 1, 10, 100 ], [ 1, 10, 200 ], [ 1, 10, 300 ], [ 1, 20, 100 ], [ 1, 20, 200 ], [ 1, 20, 300 ], [ 2, 10, 100 ], [ 2, 10, 200 ], [ 2, 10, 300 ], [ 2, 20, 100 ], [ 2, 20, 200 ], [ 2, 20, 300 ] ]
Dengan menerima ciri JavaScript moden, kami boleh menangani tugas yang rumit seperti pengiraan produk Cartesian dengan sangat mudah. Sama ada untuk pembangunan algoritma atau manipulasi data, teknik ini memperkasakan pembangun untuk membuat kod dengan lebih cekap dan elegan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghasilkan Produk Tatasusunan Cartesian dengan Cekap dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!