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
I. Itérer sur des tableaux réels À l'heure actuelle, il existe trois façons d'itérer sur les éléments d'un tableau réel :
  • méthode Array.prototype.forEach ;
  • classique pour la boucle
  • une boucle for...in "correctement" construite.
  • De plus, bientôt, avec l'avènement du nouveau standard ECMAScript 6 (ES 6), deux méthodes supplémentaires sont attendues :
  • boucle for...of (utilisation implicite de l'itérateur) ;
  • utilisation explicite de l'itérateur.
  • 1. La méthode forEach et les méthodes associées Si votre projet est conçu pour prendre en charge les fonctionnalités de la norme ECMAScript 5 (ES5), vous pouvez utiliser l'une de ses innovations : la méthode forEach.

    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.
    2. Pour la boucle Bon vieux pour les règles:

    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.

    3. Utilisation appropriée d'une boucle for...in S'il vous est conseillé d'utiliser une boucle for...in, rappelez-vous que parcourir des tableaux n'est pas ce à quoi elle est destinée. Contrairement à une idée fausse courante, la boucle for...in ne parcourt pas les indices d'un tableau, mais plutôt les propriétés énumérables d'un objet.

    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

    Avoir des questions?

    Signaler une faute de frappe

    Texte qui sera envoyé à nos rédacteurs :