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