Vergleichen Sie Python- und JavaScript-Array-Schleifen

Ich benutze hauptsächlich Python, aber wenn ich JavaScript berühre, gibt es verschiedene Array-Operationen und ich bin verwirrt, also habe ich es organisiert.

Thema

Dieses Mal war das Thema ein Programm, das ein Array mit Zeichenfolgen durchläuft und ein Array mit __ am Ende aller Elemente zurückgibt.

Python

for in In Python gibt es nur eine grundlegende Anweisung. Sie können mit for i in <list> iterieren.

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
Sie können map verwenden, um eine Funktion auf alle Arrays anzuwenden. Der Rückgabewert der map -Methode ist jedoch ein Iterator, der als Map-Objekt bezeichnet wird. Daher muss er in eine Liste konvertiert werden.

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

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

enumerate
Wenn Sie einen Index benötigen, können Sie "enumerate" verwenden.

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 In JavaScript gibt es verschiedene Beschreibungsmethoden, aber die grundlegende ist wahrscheinlich der gleiche Stil wie die Sprache 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 schleift die Eigenschaften des Objekts. Da die Eigenschaft des "Array" -Objekts ein Array von ganzzahligen Werten ist, kann der obige Zähler abgerufen werden. Beachten Sie jedoch, dass das "idx" hier vom Typ string ist.

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__']

Diese Methode wird jedoch nicht für Sequenzen empfohlen, bei denen die Reihenfolge wichtig ist, da die Iterationsreihenfolge von der Implementierung abhängt. for...in - JavaScript _ MDN

Hinweis: for ... in sollte nicht zum Wiederholen von Arrays verwendet werden, bei denen die Indexreihenfolge wichtig ist.

Da die Reihenfolge der Iterationen implementierungsabhängig ist, beziehen sich Array-Iterationen nicht immer in einer konsistenten Reihenfolge auf die Elemente. Aus diesem Grund ist es besser, eine for-Schleife (oder Array.prototype.forEach () oder for ... of-Schleife) mit einem numerischen Index zu verwenden, wenn ein Array wiederholt wird, bei dem die Reihenfolge des Zugriffs wichtig ist.

for of
Sie können for of aus ECMAScript6 verwenden. Dieses Verhalten ist Python-Benutzern vertraut. Der Inhalt des Arrays selbst wird abgerufen.

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
Sie können Array.prototype.forEach () verwenden, um eine Funktion für jedes Element auszuführen. Array.prototype.forEach() - JavaScript _ MDN

Die forEach () -Methode führt die angegebene Funktion für jedes Element des Arrays einmal aus.

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

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

Der Unterschied zu "für von" besteht darin, dass Sie nicht in der Mitte brechen können, außer um eine Ausnahme auszulösen. Wenn das Element "undefiniert" ist, wird die Funktion nicht aufgerufen. Es kann jedoch mit IE9 oder höher verwendet werden.

map
Das letzte ist "map", das die Funktion auf alle Elemente des Arrays anwendet. Im Gegensatz zu Python lautet der Rückgabewert "Array".

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

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

Recommended Posts

Vergleichen Sie Python- und JavaScript-Array-Schleifen
Unterschied in der Authentizität zwischen Python und JavaScript
Vermeiden Sie verschachtelte Schleifen in PHP und Python
Python> Link> Initialisierung und Zuweisung von 2D-Arrays
Mehrdimensionales Python-Array
[Anfänger] Python-Array
[Super Basic] Vergleichen Sie Python, Java und JavaScript (Variablen, if-Anweisungen, while-Anweisungen, for-Anweisungen)
Grundlagen des Python-Arrays
Zusammenfassung der Korrespondenz zwischen Ruby- und Python-Array-Operationen
Vergleichen Sie die Geschwindigkeit von Python Append und Map
Vergleichen Sie die XML-Parsing-Geschwindigkeiten mit Python und Go
[Python] Erfahren Sie mehr über asynchrone Programmierung und Ereignisschleifen
[Python] Komprimieren und dekomprimieren
Über Python für Schleife
Python- und Numpy-Tipps
[Python] Pip und Wheel
Python Iterator und Generator
Python-Pakete und -Module
Vue-Cli- und Python-Integration
Ruby, Python und Map
Berechnung des Python-Numpy-Arrays
Python-Eingabe und Ausgabe
Python und Ruby teilen sich
Vergleichen Sie Zeichenfolgen in Python
Vergleiche "log and infininity" mit Gauche (0.9.4) und Python (3.5.1)
Python asyncio und ContextVar
Vergleich von CoffeeScript mit JavaScript-, Python- und Ruby-Grammatik
[Python] Array-Slice-Operation
Vergleichen Sie HTTP GET / POST mit cURL (Befehl) und Python (Programmierung).
So tauschen Sie Elemente in einem Array in Python aus und wie kehren Sie ein Array um.
Python> Unterschied zwischen Inpbt- und Print-Ausgabe (Inpbt)> [1. 2. 3.] / Array ([1., 2., 3.], dtype = float32)
Entfernen Sie führende und nachfolgende Leerzeichen in Python, JavaScript oder Java
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
Python-Memo (für mich): Array
Python: Klassen- und Instanzvariablen
Sortieren Sie schnell ein Array in Python 3
3-3, Python-Zeichenfolge und Zeichencode
Python 2-Serie und 3-Serie (Anaconda Edition)
Python und Hardware-Verwenden von RS232C mit Python-
Python auf Ruby und wütend Ruby auf Python
Python-Einzug und String-Format
Installieren Sie Python und Flask (Windows 10)
Informationen zu Python-Objekten und -Klassen
Informationen zu Python-Variablen und -Objekten
Apache mod_auth_tkt und Python AuthTkt
Vergleichen wir die Python-Array-ähnlichen Typen
Å (Ongustorome) und NFC @ Python
Python: 3D-Array-Bild (numpy.array)
Lernen Sie Python-Pakete und -Module kennen
# 2 [python3] Trennung und Kommentar aus
Flache Python-Kopie und tiefe Kopie
Python und Ruby Slice Memo
Python-Installation und grundlegende Grammatik
Ich habe Java und Python verglichen!
Flache Python-Kopie und tiefe Kopie
Stolpern Geschichte mit Python-Array
Über Python, len () und randint ()
Informationen zu Python-Datums- und Zeitzone
Installieren Sie Python 3.7 und Django 3.0 (CentOS)