Dalam matematik, Cartesian product of multiple sets ialah set semua kemungkinan gabungan tertib unsur daripada set tersebut. Sebagai contoh, hasil darab Cartes bagi set [1, 2] dan [10, 20, 300] ialah { [1, 10], [1, 20], [1, 300], [2, 10], [2, 20], [2, 300] }.
Penyelesaian JavaScript 1 Baris (Kemas Kini 2020)
Memanfaatkan kuasa ciri JavaScript moden, berikut ialah penyelesaian ultra ringkas yang merangkumi hanya satu baris:
const cartesian = (...a) => a.reduce((a, b) => a.flatMap(d => b.map(e => [d, e].flat())));
JavaScript Vanila 2 Baris Penyelesaian
Sebelum kemas kini 2020, ini ialah penyelesaian JavaScript vanila terpendek:
let f = (a, b) => [].concat(...a.map(a => b.map(b => [].concat(a, b)))); let cartesian = (a, b, ...c) => b ? cartesian(f(a, b), ...c) : a;
Pertimbangkan tatasusunan input:
input = [1, 2], [10, 20], [100, 200, 300]
Untuk mengira produk Cartesian, kita boleh menggunakan cartesian fungsi:
const output = cartesian(...input);
Pembolehubah keluaran akan mengandungi produk Cartes yang dijangkakan:
[[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]]
Atas ialah kandungan terperinci Bagaimana untuk Mengira Produk Cartesian Berbilang Tatasusunan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!