Vos résultats de recherche

    for...of

    Cette fonction, proposition pour ECMAScript 6 (Harmony), est expérimentale
    Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
    Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

    Résumé

    Cette instruction parcourt les objets sur lesquels on peut itérer (comme les tableaux, les itérateurs et générateurs). Pour ce faire, elle utilise un mécanisme d'itération sur mesure utilisant des instructions à exécuter pour chacune des différentes propriétés.

    Informations de version

    Instruction
    Implémentée dans : Aucune implémentation
    Version ECMA : ECMAScript 6th Edition proposal

    Syntaxe

    for (variable of objet)
      instruction
    

    Paramètres

    variable
    Pour chaque itération, la valeur d'une propriété différente sera assignée à cette variable.
    objet
    L'objet dont on parcourt les propriétés.

    Exemples

    L'exemple qui suit démontre la différence entre une boucle for...of et une boucle for...in. Une boucle for...in parcourt les noms des différentes propriétés alors qu'une boucle for...of parcourt leurs valeurs.

    let arr = [ 3, 5, 7 ];
    arr.toto = "hello";
    
    for (let i in arr) {
       console.log(i); // le log donnera "0", "1", "2", "toto"
    }
    
    for (let i of arr) {
       console.log(i); // le log donnera "3", "5", "7"
    }
    

    L'exemple suivant parcourt une collection du DOM, ici NodeList en ajoutant une classe read aux paragraphes qui sont des descendants directs de l'article.

    let articleParagraphs = document.querySelectorAll("article > p");
    
    for (let paragraph of articleParagraphs) {
      paragraph.classList.add("read");
    }
    

    Il est également possible d'itérer sur un générateur :

    // NOTE: "function*" n'est pas encore supporté par Firefox
    // Il faut retirer l'asterisque pour que l'exemple fonctionne
    // sous Firefox (13).
    
    function* fibonacci() { // un generateur de fonction
        let [prev, curr] = [0, 1];
        for (;;) {
            [prev, curr] = [curr, prev + curr];
            yield curr;
        }
    }
    
    for (let n of fibonacci()) {
        // stoppe la suite à 1000
        if (n > 1000)
            break;
        print(n);
    }
    

    Compatibilité des navigateurs

    Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Support simple Pas de support 13 (13) bug 699565 Pas de support Pas de support Pas de support
    Fonctionnalité Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Support simple ? ? 13.0 (13) bug 699565 ? ? ?

    Voir aussi

    Étiquettes et contributeurs liés au document

    Contributeurs ayant participé à cette page : senshu, SphinxKnight
    Dernière mise à jour par : senshu,