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.
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