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
Mary-Kate Olsenasal
2024-12-15 14:10:22144semak imbas

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

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

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

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!

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