Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengira Produk Cartesan Berbilang Tatasusunan dengan Cekap dalam JavaScript?

Bagaimana untuk Mengira Produk Cartesan Berbilang Tatasusunan dengan Cekap dalam JavaScript?

Mary-Kate Olsen
Lepaskan: 2024-12-31 05:55:18
asal
1002 orang telah melayarinya

How to Efficiently Calculate the Cartesian Product of Multiple Arrays in JavaScript?

Melaksanakan Produk Cartesian Berbilang Tatasusunan dalam JavaScript

Produk Cartesian berbilang tatasusunan terdiri daripada setiap gabungan elemen yang mungkin daripada tatasusunan input. Operasi ini penting untuk menjana semua kemungkinan gabungan atau pilih atur daripada set data.

Jawapan 1 Baris (ES2020)

const cartesian = (...a) => a.reduce((a, b) => a.flatMap(d => b.map(e => [d, e].flat())));
Salin selepas log masuk

Penjelasan

Produk Cartesian dikira dalam perkara berikut cara:

  1. Kurangkan: Gunakan kaedah ini untuk mengulangi setiap tatasusunan dan menggabungkannya.
  2. flatMap: Ratakan tatasusunan yang dikurangkan dengan menggabungkan semua kemungkinan gabungan elemen daripada dua input tatasusunan.
  3. rata: Permudahkan tatasusunan bersarang dengan mengalih keluar tatasusunan atau elemen kosong.

Contoh

Kepada gunakan produk Cartesian pada tatasusunan dengan nilai, pertimbangkan perkara berikut contoh:

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

Keluaran yang dijangkakan ialah:

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

Ini menunjukkan pengiraan semua kemungkinan gabungan elemen daripada tatasusunan yang diberikan, menghasilkan produk Cartesian yang lengkap.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Produk Cartesan Berbilang Tatasusunan dengan Cekap dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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