Boucle "for in" en javascript

Fermé
juanou Messages postés 137 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 23 août 2013 - 10 sept. 2009 à 12:51
juanou Messages postés 137 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 23 août 2013 - 10 sept. 2009 à 15:16
Bien le bonjour !

Je suis en train de passer un petit javascript au test de http://www.jslint.com/
Et ça bloque sur une erreur que je ne comprends pas :

"Problem at line 13 character 9: The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype."

(je traduirais ça par "le corps d'un for in devrait être englobé dans une instruction if pour filtrer les propriétés du prototype")

Voici la ligne incriminée :
"for ( action in this.actions ) { this.actions[action](); }"

Qu'est-ce donc qui va pas dans mon for in ???

(Merci de votre aide)

3 réponses

bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 860
10 sept. 2009 à 14:03
Je pense que c'est juste pour te dire de vérifier que ton this.actions n'est pas null avant de "lancer" la for in. Je le vois plus comme un warning qu'une erreur.
1
juanou Messages postés 137 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 23 août 2013 58
10 sept. 2009 à 15:16
Oui en effet ça ne me paraissait pas très important, mais j'avais l'impression que ça faisait bugger mon script sous Internet Explorer. (Avec ie il faut s'attendre à tout !)

J'ai donc utilisé une autre méthode ( à base de for ( i ; i<x ; i++ ) ), pour laquelle jslint n'avait rien à me reprocher. Et du coup je me suis rendu compte que le bug ne venait pas de là dutout !!

Je n'ai pas vérifié si ton astuce passait le test. Mais j'en prends bonne, pour un jour où je serai obligé de faire du for in.

Merci.
0
juanou Messages postés 137 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 23 août 2013 58
10 sept. 2009 à 15:16
Oui en effet ça ne me paraissait pas très important, mais j'avais l'impression que ça faisait bugger mon script sous Internet Explorer. (Avec ie il faut s'attendre à tout !)

J'ai donc utilisé une autre méthode ( à base de for ( i ; i<x ; i++ ) ), pour laquelle jslint n'avait rien à me reprocher. Et du coup je me suis rendu compte que le bug ne venait pas de là dutout !!

Je n'ai pas vérifié si ton astuce passait le test. Mais j'en prends bonne, pour un jour où je serai obligé de faire du for in.

Merci.
0