Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menghasilkan Produk Tatasusunan Cartesian dengan Cekap dalam JavaScript?

Bagaimanakah Saya Boleh Menghasilkan Produk Tatasusunan Cartesian dengan Cekap dalam JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-12-16 07:13:10676semak imbas

How Can I Efficiently Generate Cartesian Products of Arrays in JavaScript?

Menjana Produk Cartesan Tatasusunan dalam JavaScript

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.

Penyelesaian 2020 Dioptimumkan

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())));

Contoh Penggunaan

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 ]
]

Kesimpulan

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!

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