Heim >Web-Frontend >js-Tutorial >Wie kann ich die Zip-Funktion von Python in JavaScript replizieren?

Wie kann ich die Zip-Funktion von Python in JavaScript replizieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-28 18:58:10558Durchsuche

How Can I Replicate Python's Zip Function in JavaScript?

Javascript-Äquivalente der Zip-Funktion von Python

Die Zip-Funktion von Python kann mithilfe verschiedener Ansätze in JavaScript repliziert werden. Lassen Sie uns zwei gängige Methoden untersuchen:

1. Array-Zuordnung

Diese Methode geht davon aus, dass die Eingabe-Arrays gleich lang sind und beinhaltet die Zuordnung des ersten Arrays, um Paare mit entsprechenden Elementen aus den anderen Arrays zu erstellen.

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

Beispiel:

const array1 = [1, 2, 3];
const array2 = ['a', 'b', 'c'];
const array3 = [4, 5, 6];

const zippedArray = zip(array1, array2, array3);

console.log(zippedArray); // [[1, 'a', 4], [2, 'b', 5], [3, 'c', 6]]

2. Array.apply und Array Mapping

Diese Methode verarbeitet sowohl Arrays gleicher als auch ungleicher Länge und gibt für fehlende Werte undefiniert zurück.

function zip(...arrays) {
  const longest = arrays.reduce((a, b) => (a.length > b.length ? a : b), []);

  return Array.apply(null, Array(longest.length)).map((_, i) =>
    arrays.map((array) => array[i])
  );
}

Beispiel:

const array1 = [1, 2, 3];
const array2 = ['a', 'b'];
const array3 = [4, 5, 6];

const zippedArray = zip(array1, array2, array3);

console.log(zippedArray); // [[1, 'a', 4], [2, 'b', 5], [3, undefined, 6]]

Hinweis: Wenn Sie eine der oben genannten Methoden mit Arrays ungleicher Länge verwenden, denken Sie daran Sie sind nicht ihr eigenes Gegenteil. Um Pythons zip(*[...])-Idiom nachzuahmen, verwenden Sie zip.apply(this, [...]).

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