Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Mengira Produk Cartesan Berbilang Tatasusunan dalam JavaScript?

Bagaimanakah Saya Boleh Mengira Produk Cartesan Berbilang Tatasusunan dalam JavaScript?

Mary-Kate Olsen
Lepaskan: 2024-12-15 14:10:22
asal
149 orang telah melayarinya

How Can I Calculate the Cartesian Product of Multiple Arrays in JavaScript?

Produk Cartesian Berbilang Tatasusunan dalam JavaScript

JavaScript menyediakan cara yang mudah untuk menentukan produk Cartesian bagi beberapa tatasusunan. Produk Cartesian melibatkan penggabungan unsur-unsur daripada setiap tatasusunan untuk membentuk tatasusunan baharu, menghasilkan setiap gabungan yang mungkin.

Sebagai contoh, memandangkan tatasusunan [1, 2] dan [10, 20], produk Cartesian akan menjadi [[1, 10], [1, 20], [2, 10], [2, 20]].

1 Baris Penyelesaian dengan JavaScript Moden (ECMAScript 2020):

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

Selam Lebih Dalam Penyelesaian:

Penyelesaian ini menggunakan dua ciri JavaScript utama:

  1. Operator Spread (...): Operator ini digunakan untuk menyebarkan tatasusunan ke dalam argumen yang berasingan, membenarkan ia dibekalkan kepada fungsi sebagai parameter.
  2. Array.reduce(...): Ia digunakan untuk menggabungkan tatasusunan secara rekursif, dengan setiap langkah melakukan perkara berikut:

    • Meratakan tatasusunan hasil semasa menggunakan kaedah flatMap().
    • Lelaran pada seterusnya tatasusunan.
    • Menambahkan setiap elemen daripada tatasusunan seterusnya kepada hasil yang diratakan.
    • Meratakan hasil sekali lagi.

Contoh:

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

Ini akan menghasilkan:

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

JavaScript terus berkembang, dan ciri baharu yang diperkenalkan dalam ECMAScript 2020 membolehkan kami menulis kod yang lebih ringkas dan cekap. Penyelesaian yang dipertingkat ini menunjukkan kuasa JavaScript moden untuk masalah yang rumit.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Produk Cartesan Berbilang Tatasusunan 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