Maison >développement back-end >Tutoriel Python >Existe-t-il un équivalent JavaScript à la fonction zip de Python ?

Existe-t-il un équivalent JavaScript à la fonction zip de Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-13 19:43:14333parcourir

Is There a JavaScript Equivalent to Python's zip Function?

Équivalent Javascript de la fonction zip de Python

En Python, la fonction zip combine plusieurs itérables en un seul itérable de tuples, où chaque tuple contient les éléments correspondants des itérables d’entrée. Existe-t-il une fonction similaire disponible en Javascript ?

Implémentation Javascript

Oui, il existe une fonction zip équivalente en Javascript. Il prend un tableau de tableaux comme argument et renvoie un tableau de tableaux, où chaque tableau interne contient les éléments correspondants des tableaux d'entrée. Par exemple, si vous avez trois tableaux :

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

Le code suivant créera un tableau de paires :

const outputArray = array1.map((_, i) => [array1[i], array2[i], array3[i]]);

Le tableau de sortie sera :

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

Version ES6

Dans ES6, vous pouvez utiliser les éléments suivants syntaxe :

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

Fonctionnalités supplémentaires

La fonction zip Javascript peut être modifiée pour imiter le comportement de la fonction zip de Python et de ses extensions. Par exemple, vous pouvez créer des fonctions qui :

  • Supposent des tableaux de longueur inégale et ignorent silencieusement les tableaux plus longs.
  • Insérez des valeurs non définies pour les éléments manquants dans les tableaux.
  • Gérez les itérables, tels que les chaînes et les plages.

Addendum : Gestion des itérables

Pour gérer les itérables, vous pouvez définir une fonction iterView qui convertit un itérable en équivalent tableau. Alternativement, vous pouvez utiliser la fonction suivante :

const zip = arrays => Array.apply(null, Array(arrays[0].length)).map((_, i) => arrays.map(array => array[i]));

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn