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
Patricia Arquetteoriginal
2024-12-14 13:45:12958parcourir

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];

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];
}

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;
}

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!

Déclaration:
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