Heim > Web-Frontend > js-Tutorial > Wie kann ich alle Permutationen eines Integer-Arrays in JavaScript generieren?

Wie kann ich alle Permutationen eines Integer-Arrays in JavaScript generieren?

Susan Sarandon
Freigeben: 2024-12-19 19:56:12
Original
164 Leute haben es durchsucht

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

Permutationsgenerierung in JavaScript

Um Permutationen eines Arrays von Ganzzahlen in JavaScript zu generieren, kann eine rekursive Funktion verwendet werden. Das Ziel besteht darin, ein ganzzahliges Array als Eingabe zu verwenden und ein Array zurückzugeben, das alle möglichen Permutationen enthält, jede mit der gleichen Länge wie das Eingabearray.

Modifizierte Permutationsfunktion

Die bereitgestellte Funktion für die String-Permutation kann geändert werden, indem die Unterschiede in der Art und Weise berücksichtigt werden, wie Methoden mit ganzen Zahlen und arbeiten Zeichenfolgen:

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;
}
Nach dem Login kopieren

Kürzere und moderne Version (ES6)

Mithilfe moderner JavaScript-Funktionen kann die obige Funktion vereinfacht werden:

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;
};
Nach dem Login kopieren

Verwendungsbeispiele

Beide Funktionen können zum Generieren von Ganzzahlpermutationen verwendet werden Arrays:

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
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich alle Permutationen eines Integer-Arrays in JavaScript generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage