Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengira Produk Cartesian Berbilang Tatasusunan dalam JavaScript?
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!