Comparez les boucles de tableau Python et JavaScript

J'utilise principalement Python, mais quand je touche JavaScript, il y a diverses opérations de tableau et je suis confus, alors je l'ai organisé.

thème

Cette fois, le thème est un programme qui boucle un tableau contenant des chaînes et renvoie un tableau avec «__» à la fin de tous les éléments.

Python

for in En Python, il n'y a qu'une seule instruction de base pour. Vous pouvez itérer avec for i in <list>.

from typing import List
array = ["hoge", "fuga", "foo", "bar"]

def add_suffix(text: str) -> str:
    return text + "__"

def for_in(array: List[str]) -> List[str]:
    ls: list = []
    for item in array:
        ls.append(add_suffix(item))
    return ls

print(for_map(array))
# ['hoge__', 'fuga__', 'foo__', 'bar__']

map
Vous pouvez utiliser map pour appliquer une fonction à tous les tableaux. Cependant, la valeur de retour de la méthode map est un itérateur appelé objet de carte, il doit donc être converti en liste.

def for_map(array: List[str]) -> List[str]:
    return list(map(add_suffix, array))

print(for_in(array))
# ['hoge__', 'fuga__', 'foo__', 'bar__']

enumerate
Si vous avez besoin d'un index, vous pouvez utiliser ʻenumerate`.

def for_enum(array: List[str]) -> List[str]:
    ls: list = []
    for idx, item in enumerate(array):
        # idx = 0, 1, 2, 3
        ls.append(add_suffix(item))
    return ls

print(for_enum(array))
# ['hoge__', 'fuga__', 'foo__', 'bar__']

JavaScript

for En JavaScript, il existe différentes méthodes de description, mais la méthode de base est probablement le même style que le langage C.

var array = ["hoge", "fuga", "foo", "bar"];

function add_suffix(text) {
  return text + "__";
}

function forI(array) {
  returnArray = new Array();
  for (var i = 0; i < array.length; i++) {
    // i = 0, 1, 2, 3
    returnArray.push(add_suffix(array[i]));
  }
  return returnArray;
}

console.log(forI(array));
// ['hoge__', 'fuga__', 'foo__', 'bar__']

for in
var i in array boucle les propriétés de l'objet. Puisque la propriété de l'objet ʻArray est un tableau de valeurs entières, le compteur ci-dessus peut être récupéré. Cependant, notez que ʻidx ici est un type de chaîne.

function forIn(array) {
  returnArray = new Array();
  for (var idx in array) {
    // idx = "0", "1", "2", "3"
    returnArray.push(add_suffix(array[idx]));
  }
  return returnArray;
}

console.log(forIn(array));
// ['hoge__', 'fuga__', 'foo__', 'bar__']

Cependant, cette méthode n'est pas recommandée pour les séquences où l'ordre est important car l'ordre d'itération dépend de l'implémentation. for...in - JavaScript _ MDN

Remarque: for ... in ne doit pas être utilisé pour répéter des tableaux où l'ordre des index est important.

Comme l'ordre des itérations dépend de l'implémentation, les itérations de tableau ne font pas toujours référence aux éléments dans un ordre cohérent. Pour cette raison, il est préférable d'utiliser une boucle for (ou Array.prototype.forEach () ou for ... of loop) avec un index numérique lors de la répétition d'un tableau où l'ordre d'accès est important.

for of
Vous pouvez utiliser for of de ECMAScript6. Ce comportement est familier aux utilisateurs de Python. Le contenu du tableau lui-même est récupéré.

function forOf(array) {
  returnArray = new Array();
  for (var item of array) {
    returnArray.push(add_suffix(item));
  }
  return returnArray;
}

console.log(forOf(array));
// ['hoge__', 'fuga__', 'foo__', 'bar__']

forEach
Vous pouvez utiliser ʻArray.prototype.forEach () `pour exécuter une fonction pour chaque élément. Array.prototype.forEach() - JavaScript _ MDN

La méthode forEach () exécute la fonction donnée une fois pour chaque élément du tableau.

function forEach(array) {
  returnArray = new Array();
  array.forEach(item => {
    returnArray.push(add_suffix(item));
  });
  return returnArray;
}

console.log(forEach(array));
// ['hoge__', 'fuga__', 'foo__', 'bar__']

La différence avec «for of» est que vous ne pouvez pas casser au milieu sauf pour lever une exception. De plus, si l'élément est "non défini", la fonction ne sera pas appelée. Cependant, il peut être utilisé avec IE9 ou supérieur.

map
Le dernier est map, qui applique la fonction à tous les éléments du tableau. Contrairement à Python, la valeur de retour est ʻArray`.

function forMap(array) {
  return array.map(add_suffix);
}

console.log(forMap(array));
// ['hoge__', 'fuga__', 'foo__', 'bar__']

Recommended Posts

Comparez les boucles de tableau Python et JavaScript
Différence d'authenticité entre Python et JavaScript
Évitez les boucles imbriquées en PHP et Python
Python> lien> Initialisation et affectation de tableaux 2D
Tableau multidimensionnel Python
[Débutant] Tableau Python
[Super Basic] Comparez Python, Java et JavaScript (variables, instructions if, instructions while, pour les instructions)
principes de base des tableaux python
Résumé de la correspondance entre les opérations de tableau ruby et python
Comparez la vitesse d'ajout et de carte Python
Comparez les vitesses d'analyse XML avec Python et Go
[Python] En savoir plus sur la programmation asynchrone et les boucles d'événements
[python] Compresser et décompresser
À propos de Python for loop
Astuces Python et Numpy
[Python] pip et roue
Itérateur et générateur Python
Paquets et modules Python
Intégration Vue-Cli et Python
Ruby, Python et carte
calcul de tableau numpy python
entrée et sortie python
Python et Ruby se séparent
Comparer des chaînes en Python
Comparez la "relation log et infini" avec Gauche (0.9.4) et Python (3.5.1)
Python asyncio et ContextVar
Comparaison de CoffeeScript avec la grammaire JavaScript, Python et Ruby
[python] Opération de tranche de tableau
Comparez HTTP GET / POST avec cURL (commande) et Python (programmation)
Comment échanger des éléments dans un tableau en Python et comment inverser un tableau.
Python> Différence entre la sortie inpbt et print (inpbt)> [1. 2. 3.] / array ([1., 2., 3.], dtype = float32)
Supprimez les espaces de début et de fin en Python, JavaScript ou Java
Programmation avec Python et Tkinter
Chiffrement et déchiffrement avec Python
Mémo Python (pour moi): Array
Python: variables de classe et d'instance
Tri rapide d'un tableau en Python 3
3-3, chaîne Python et code de caractère
Série Python 2 et série 3 (édition Anaconda)
Python et matériel - Utilisation de RS232C avec Python -
Python sur Ruby et Ruby en colère sur Python
Indentation Python et format de chaîne
Installez Python et Flask (Windows 10)
À propos des objets et des classes Python
À propos des variables et des objets Python
Apache mod_auth_tkt et Python AuthTkt
Comparons les types de tableaux Python
Å (Ongustorome) et NFC @ Python
Python: image de tableau 3D (numpy.array)
Apprenez à connaître les packages et les modules Python
# 2 [python3] Séparation et commentaire
Copie superficielle Python et copie profonde
Mémo tranche python et rubis
Installation de Python et grammaire de base
J'ai comparé Java et Python!
Copie superficielle Python et copie profonde
Histoire de trébucher avec le tableau Python
À propos de Python, len () et randint ()
À propos de la date et du fuseau horaire Python
Installez Python 3.7 et Django 3.0 (CentOS)