Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die „zip'-Funktion von Python in JavaScript replizieren?

Wie kann ich die „zip'-Funktion von Python in JavaScript replizieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-17 10:19:25779Durchsuche

How Can I Replicate Python's `zip` Function in JavaScript?

JavaScript-Äquivalenz zur Python-Funktion „zip“

In Python kombiniert die Funktion „zip“ Elemente aus mehreren Listen zu Tupeln und behält dabei die Reihenfolge ihrer Positionen innerhalb bei Listen.

Beispielsweise bei drei gleich langen Listen:

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = [4, 5, 6]

Die „zip“-Funktion gibt die folgende Liste von Tupeln zurück:

[(1, 'a', 4), (2, 'b', 5), (3, 'c', 6)]

JavaScript-Äquivalent:

JavaScript verfügt nicht über eine integrierte „Zip“-Funktion. Es gibt jedoch mehrere Möglichkeiten, seine Funktionalität zu emulieren:

Verwendung der „map“-Funktion (ES5):

function zip(arrays) {
    return arrays[0].map(function(_, i) {
        return arrays.map(function(array) { return array[i] })
    });
}

Alternativ mithilfe des Spreads Operator (ES6):

const zip = (...rows) => rows[0].map((_, c) => rows.map(row => row[c]));

Die Ausgabe dieser Funktion ist ein Array von Arrays, die jeweils a darstellen Tupel von Werten aus den Eingabelisten.

Hinweis:

  • Die JavaScript-Versionen gehen davon aus, dass die Eingabelisten gleich lang sind.
  • Verwenden Die „map“-Funktion kehrt die Reihenfolge der Elemente in den Tupeln im Vergleich zur „zip“-Funktion von Python um.

Das obige ist der detaillierte Inhalt vonWie kann ich die „zip'-Funktion von Python in JavaScript replizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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