Penjanaan Pilihatur dalam JavaScript
Untuk menjana pilih atur tatasusunan integer dalam JavaScript, fungsi rekursif boleh digunakan. Matlamatnya adalah untuk mengambil tatasusunan integer sebagai input dan mengembalikan tatasusunan yang mengandungi semua pilih atur yang mungkin, setiap satu dengan panjang yang sama dengan tatasusunan input.
Fungsi Pilihatur Diubahsuai
Fungsi yang disediakan untuk pilih atur rentetan boleh diubah suai dengan mempertimbangkan perbezaan cara kaedah beroperasi pada integer dan rentetan:
const permArr = []; const usedNums = []; function permuteIntegers(input) { for (let i = 0; i < input.length; i++) { const num = input.splice(i, 1)[0]; usedNums.push(num); if (input.length === 0) { permArr.push([...usedNums]); } permuteIntegers(input); input.splice(i, 0, num); usedNums.pop(); } return permArr; }
Versi Lebih Pendek dan Moden (ES6)
Menggunakan ciri JavaScript moden, fungsi di atas boleh dipermudahkan:
const permutator = (inputArr) => { const result = []; const permute = (arr, memo = []) => { if (arr.length === 0) { result.push(memo); } else { for (let i = 0; i < arr.length; i++) { const curr = arr.slice(); const next = curr.splice(i, 1)[0]; permute(curr, memo.concat(next)); } } }; permute(inputArr); return result; };
Contoh Penggunaan
Kedua-dua fungsi boleh digunakan untuk menjana pilih atur tatasusunan integer:
console.log(permuteIntegers([1, 2, 3])); // Output: [[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]] console.log(permutator([1, 2, 3])); // Output: same as above
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Semua Pilihatur bagi Tatasusunan Integer dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!