Produk Cartesian Nilai Tatasusunan JavaScript
Masalah:
Diberi nombor JavaScript yang sewenang-wenangnya tatasusunan dengan panjang yang berbeza-beza, tentukan semua kombinasi (hasil Cartesian) bagi nilainya.
Penyelesaian:
Tugas ini boleh diselesaikan dengan cekap menggunakan rekursi. Ia melibatkan lelaran melalui setiap tatasusunan dan menggabungkan nilainya dengan semua kemungkinan gabungan tatasusunan yang tinggal.
Pertimbangkan pelaksanaan berikut:
function allPossibleCases(arr) { if (arr.length === 1) { return arr[0]; } else { const result = []; const casesOfRest = allPossibleCases(arr.slice(1)); // recur with the rest of arr casesOfRest.forEach((c) => { for (let i = 0; i < arr[0].length; i++) { result.push(arr[0][i] + c); } }); return result; } }
Penggunaan:
var allArrays = [['a', 'b'], ['c'], ['d', 'e', 'f']]; var results = allPossibleCases(allArrays); // outputs ["acd", "bcd", "azd", ...]
Penjelasan:
Atas ialah kandungan terperinci Bagaimana untuk Menjana Semua Gabungan (Produk Cartesian) Nilai dalam Tatasusunan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!