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?

Patricia Arquette
Patricia Arquetteasal
2024-12-14 13:45:12954semak imbas

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

Pilihan dalam JavaScript: Tatasusunan Integer

Dalam JavaScript, tugas biasa ialah menjana pilih atur tatasusunan. Permutasi melibatkan penyusunan elemen tatasusunan dalam semua susunan yang mungkin. Pertimbangkan fungsi yang mengambil tatasusunan integer dan mengembalikan tatasusunan semua pilihatur yang mungkin, di mana setiap pilihatur mempunyai panjang yang sama dengan tatasusunan asal.

Untuk mengubah suai fungsi yang disediakan, yang beroperasi pada rentetan, untuk berfungsi dengan tatasusunan integer, beberapa pengubahsuaian diperlukan. Pertama, kaedah pisah yang digunakan untuk mencipta tatasusunan aksara daripada rentetan tidak boleh digunakan terus pada tatasusunan integer. Sebaliknya, tatasusunan boleh diulang dan setiap elemen boleh ditolak ke tatasusunan baharu:

const integers = [...input];

Seterusnya, kaedah gabungan yang digunakan untuk menggabungkan aksara dalam pilih atur rentetan tidak boleh digunakan dengan integer. Sebaliknya, kaedah concat boleh digunakan untuk mencipta tatasusunan baharu yang mengandungi semua integer:

if (integers.length === 0) {
  permArr[permArr.length] = [...usedChars];
}

Selebihnya fungsi kekal sama, dan ia kini akan menjana semua pilih atur yang mungkin bagi tatasusunan integer dan kembalikannya sebagai tatasusunan tatasusunan:

let permArr = [];
let usedChars = [];

function permute(input) {
  const integers = [...input];
  for (let i = 0; i < integers.length; i++) {
    const ch = integers.splice(i, 1);
    usedChars.push(ch);
    if (integers.length === 0) {
      permArr[permArr.length] = [...usedChars];
    }
    permute(integers);
    integers.splice(i, 0, ch);
    usedChars.pop();
  }
  return permArr;
}

Fungsi yang diubah suai ini boleh menjana pilih atur tatasusunan integer dan mengembalikannya sebagai tatasusunan tatasusunan, setiap satu mengandungi pilih atur yang berbeza.

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!

Kenyataan:
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