Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Menjana Semua Pilihatur bagi Tatasusunan Integer dalam JavaScript?

Bagaimanakah Saya Boleh Menjana Semua Pilihatur bagi Tatasusunan Integer dalam JavaScript?

Susan Sarandon
Lepaskan: 2024-12-19 19:56:12
asal
164 orang telah melayarinya

How Can I Generate All Permutations of an Integer Array in JavaScript?

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;
}
Salin selepas log masuk

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;
};
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan