dans mon script je boucle sur un objet json avec for in. Or JS Lint me dit que el body du for doit etre englobé dans un test if ?
Pour un array à la limite je le comprends... mais un json
dans mon script je boucle sur un objet json avec for in. Or JS Lint me dit que el body du for doit etre englobé dans un test if ?
Pour un array à la limite je le comprends... mais un json
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Les explications de Douglas Crockford :
L’instruction for in peut parcourir en boucle tous les noms de propriété d’un objet.
L’énumération inclut toutes les propriétés (dont les propriétés de fonction et les propriétés
de prototype qui pourraient ne pas vous intéresser). Il est donc nécessaire de filtrer
les valeurs que vous ne souhaitez pas. Les filtres les plus courants sont la méthode
hasOwnProperty et le recours à typeof pour exclure les fonctions.
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum
Oui Beef.
mais hasOwnProperty sur un json![]()
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Je suis bien d'accord avec toi, mais je ne suis pas convaincu que jslint se soucie de la nature de l'objet sur lequel tu boucles![]()
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum
Imagine qu'un gros boulet qui crois tout savoir en JS et qui croit qu'on peut modifier le prototype de Object, ajoute une nouvelle méthode sur le prototype de Object :
Maintenant imaginons que nous ayons dans une hashmap composée que de strings et qu'on veut modifier chacune d'elle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Object.prototype.kikoolol = function() { //fonction kikoolol }
ben on va à un moment tomber sur kikoolol qui est une fonction et non une string et donc boummmm !!!!.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 var obj = { a : 'kikoo', b : 'lol' } for (var i in obj) { obj[i] = obj[i].toUpperCase(); }
Donc il faut tester le type de ton objet, car normalement tu connais le type de ta map.
Mais comme je le dis souvent : Il ne faut pas modifier le prototype de Object, c'est le type de base et il vaut mieux éviter surtout lorsqu'on a des cas de JS comme celui que je viens de citer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for (var i in obj) { if(typeof obj[i]=='string') { obj[i] = obj[i].toUpperCase(); } }
Partager