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

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

Patricia Arquette
Freigeben: 2024-12-15 01:31:11
Original
526 Leute haben es durchsucht

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

Permutationen in JavaScript

Wenn man vor der Aufgabe steht, Permutationen für ein Array von ganzen Zahlen zu generieren, beinhaltet der direkte Ansatz einen rekursiven Algorithmus. Ein solcher Algorithmus zur Verarbeitung von Zeichenfolgen wird im angegebenen Codeausschnitt vorgestellt. Beim Versuch, diesen Algorithmus für die Arbeit mit einem Array von Ganzzahlen anzupassen, ergeben sich jedoch Herausforderungen aufgrund der Unterschiede in der Art und Weise, wie Methoden mit verschiedenen Datentypen arbeiten.

Um dieses Problem zu beheben, ist eine modifizierte Version des Algorithmus erforderlich. Dies berücksichtigt das spezifische Verhalten von ganzen Zahlen. Eine elegante Lösung, die unten vorgestellt wird, berücksichtigt folgende Überlegungen:

function permutator(inputArr) {
  var results = [];

  function permute(arr, memo) {
    var cur, memo = memo || [];

    for (var i = 0; i < arr.length; i++) {
      cur = arr.splice(i, 1);
      if (arr.length === 0) {
        results.push(memo.concat(cur));
      }
      permute(arr.slice(), memo.concat(cur));
      arr.splice(i, 0, cur[0]);
    }

    return results;
  }

  return permute(inputArr);
}
Nach dem Login kopieren

Dieser Algorithmus arbeitet mit einer Kopie des Eingabearrays und stellt sicher, dass das ursprüngliche Array unverändert bleibt. Es untersucht rekursiv alle möglichen Kombinationen und speichert die Permutationen in einem Array von Arrays.

Alternativ ist auch eine ES6 (2015)-Version dieses Algorithmus verfügbar:

const permutator = (inputArr) => {
  let result = [];

  const permute = (arr, m = []) => {
    if (arr.length === 0) {
      result.push(m)
    } else {
      for (let i = 0; i < arr.length; i++) {
        let curr = arr.slice();
        let next = curr.splice(i, 1);
        permute(curr.slice(), m.concat(next))
      }
    }
  }

  permute(inputArr)

  return result;
}
Nach dem Login kopieren

Diese Version verwendet einen Pfeil Funktionen und Standardparameterwerte für eine präzisere Syntax. Die Funktionalität bleibt dieselbe und generiert Permutationen für das bereitgestellte Array.

Das obige ist der detaillierte Inhalt vonWie kann ich 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