Maison > interface Web > js tutoriel > Comment puis-je générer toutes les permutations d'un tableau d'entiers en JavaScript ?

Comment puis-je générer toutes les permutations d'un tableau d'entiers en JavaScript ?

Patricia Arquette
Libérer: 2024-12-14 13:45:12
original
949 Les gens l'ont consulté

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

Permutations en JavaScript : tableau d'entiers

En JavaScript, une tâche courante consiste à générer des permutations d'un tableau. Les permutations impliquent de disposer les éléments d'un tableau dans tous les ordres possibles. Considérons une fonction qui prend un tableau d'entiers et renvoie un tableau de toutes les permutations possibles, où chaque permutation a la même longueur que le tableau d'origine.

Pour modifier la fonction fournie, qui opère sur des chaînes, pour travailler avec un tableau d'entiers, plusieurs modifications sont nécessaires. Premièrement, la méthode split utilisée pour créer un tableau de caractères à partir d’une chaîne ne peut pas être appliquée directement à un tableau d’entiers. Au lieu de cela, le tableau peut être itéré et chaque élément peut être poussé vers un nouveau tableau :

const integers = [...input];
Copier après la connexion

Ensuite, la méthode de jointure utilisée pour concaténer les caractères dans la permutation de chaîne ne peut pas être utilisée avec des entiers. Au lieu de cela, la méthode concat peut être utilisée pour créer un nouveau tableau contenant tous les entiers :

if (integers.length === 0) {
  permArr[permArr.length] = [...usedChars];
}
Copier après la connexion

Le reste de la fonction reste le même, et elle générera désormais toutes les permutations possibles d'un tableau d'entiers et renvoie-les sous forme de tableau de tableaux :

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;
}
Copier après la connexion

Cette fonction modifiée peut générer des permutations de tableaux d'entiers et les renvoyer sous forme de tableau de tableaux, chacun contenant une permutation différente.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal