Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
La valeur passée comme opérande droit de for…of ou comme argument d'une fonction telle que Promise.all ou TypedArray.from n'est pas un objet itérable. Un objet itérable peut être un objet itérable natif tel qu'un objet Array, String ou Map ou le résultat d'un générateur ou un objet qui implémente le protocole itérable.
En JavaScript, les objets ne sont pas itérables car ils n'implémentent pas le protocole itérable. On ne peut donc pas utiliser for...of afin d'en parcourir les propriétés.
Si on souhaite utiliser un itérateur pour parcourir les propriétés (leurs noms ou leurs valeurs), on pourra utiliser les méthodes Object.keys ou Object.entries qui fournissent des itérateurs :
On pourrait également utiliser un objet Map :
Les générateurs sont des fonctions qui, lorsqu'elles sont appelées, produisent des objets itérables.
Lorsqu'elles ne sont pas appelées, l'objet Function correspondant au générateur peut être appelé mais il n'est pass itérable. Il ne faut donc pas oublier d'invoquer le générateur afin de parcourir les valeurs de l'itérateur qu'il produit.
Les itérables spécifiques (custom iterables) peuvent être créés en implémentant la méthode Symbol.iterator. En implémentant cette méthode, il faut s'assurer que la valeur renvoyée est un objet qui est un itérateur. Autrement dit, l'objet renvoyé doit posséder une méthode next().
Voici une implémentation correcte :
Cette page a été modifiée le 17 déc. 2024 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.