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
Lepaskan: 2024-12-16 07:13:10
asal
672 orang telah melayarinya

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())));
Salin selepas log masuk

Contoh Penggunaan

Untuk menggambarkan, mari kita pertimbangkan contoh yang diberikan dalam soalan anda:

const output = cartesian([1, 2], [10, 20], [100, 200, 300]);
Salin selepas log masuk

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 ]
]
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan