Tableaux multidimensionnels Js. Tableaux multidimensionnels en JavaScript. I. Itérer sur des tableaux réels
- I. Itérer sur des tableaux réels
- méthode forEach et méthodes associées
- pour la boucle
- Utilisation appropriée de la boucle for...in
- for...of boucle (utilisation implicite de l'itérateur)
- Utilisation explicite de l'itérateur
- Utiliser des méthodes pour parcourir des tableaux réels
- Convertir en un vrai tableau
- Une note sur les objets d'exécution
Exemple d'utilisation :
var a = ["a", "b", "c"]; a.forEach(function(entry) ( console.log(entry); ));
De manière générale, l'utilisation de forEach nécessite de connecter la bibliothèque d'émulation es5-shim pour les navigateurs qui ne supportent pas nativement cette méthode. Ceux-ci incluent IE 8 et versions antérieures, qui sont encore utilisées dans certains endroits.
L'avantage de forEach est qu'il n'est pas nécessaire de déclarer des variables locales pour stocker l'index et la valeur de l'élément actuel du tableau, puisqu'elles sont automatiquement transmises à la fonction de rappel en tant qu'arguments.
Si vous vous inquiétez du coût possible d'un rappel sur chaque élément, ne vous inquiétez pas et lisez ceci.
ForEach est conçu pour parcourir tous les éléments d'un tableau, mais en plus, ES5 propose plusieurs méthodes plus utiles pour parcourir tout ou partie des éléments et effectuer certaines actions sur eux :
- each - renvoie true si pour chaque élément du tableau le rappel renvoie une valeur qui peut être convertie en true .
- some - renvoie true si pour au moins un élément du tableau, le rappel renvoie une valeur qui peut être convertie en true.
- filter - crée un nouveau tableau qui inclut les éléments du tableau d'origine pour lesquels le rappel renvoie true .
- map - crée un nouveau tableau composé des valeurs renvoyées par le rappel.
- réduire - réduit un tableau à une valeur unique, en appliquant un rappel à chaque élément du tableau tour à tour, en commençant par le premier (peut être utile pour calculer la somme des éléments du tableau et d'autres fonctions récapitulatives).
- réduireRight - fonctionne de la même manière que réduire, mais parcourt les éléments dans l'ordre inverse.
Var a = ["a", "b", "c"]; indice var ; pour (indice = 0; indice< a.length; ++index) {
console.log(a);
}
Si la longueur du tableau est constante tout au long de la boucle et que la boucle elle-même appartient à une section de code critique en termes de performances (ce qui est peu probable), vous pouvez alors utiliser une version « plus optimale » de for qui stocke la longueur du tableau. :
Var a = ["a", "b", "c"]; var index, len ; pour (index = 0, len = a.length; index< len; ++index) {
console.log(a);
}
En théorie, ce code devrait s'exécuter un peu plus vite que le précédent.
Si l'ordre des éléments n'est pas important, alors vous pouvez aller encore plus loin en termes d'optimisation et vous débarrasser de la variable de stockage de la longueur du tableau, en changeant l'ordre de recherche à l'inverse :
Var a = ["a", "b", "c"]; indice var ; pour (index = a.length - 1; index >= 0; --index) ( console.log(a); )
Cependant, dans les moteurs JavaScript modernes, de tels jeux d'optimisation ne signifient généralement rien.
Cependant, dans certains cas, comme l'itération sur des tableaux clairsemés, for...in peut être utile, à condition de prendre des précautions, comme le montre l'exemple ci-dessous :
// a - tableau clairsemé var a = ; une = "une" ; une = "b" ; une = "c" ; for (var clé dans a) ( if (a.hasOwnProperty(key) && /^0$|^\d*$/.test(key) && key