Maison >interface Web >js tutoriel >Comment puis-je générer toutes les permutations d'un tableau d'entiers en JavaScript ?
Génération de permutations en JavaScript
Pour générer des permutations d'un tableau d'entiers en JavaScript, une fonction récursive peut être utilisée. Le but est de prendre un tableau d'entiers en entrée et de renvoyer un tableau contenant toutes les permutations possibles, chacune ayant la même longueur que le tableau d'entrée.
Fonction de permutation modifiée
La fonction fournie pour la permutation de chaînes peut être modifiée en considérant les différences dans la façon dont les méthodes fonctionnent sur les entiers et chaînes :
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; }
Version plus courte et moderne (ES6)
Grâce aux fonctionnalités JavaScript modernes, la fonction ci-dessus peut être simplifiée :
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; };
Exemples d'utilisation
Les deux fonctions peuvent être utilisées pour générer des permutations de tableaux d'entiers :
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
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!