ESLint ne permet pas à l'
J'ai un objet
currentValues= {hey:1212, git:1212, nmo:12121}
et je suis de ce genre:
for (const key in currentValues) {
if (Object.prototype.hasOwnProperty.call(currentValues, key)) {
yield put(setCurrentValue(key, currentValues[key]));
}
}
ESLint m'indique une erreur qui dit:
ESLint: les boucles for..in itérer sur l'ensemble de la chaîne de prototype, qui n'est pratiquement jamais ce que vous voulez. Utiliser L'Objet.{les clés,les valeurs,les entrées}, et parcourir le tableau résultant. (non-restricted-syntaxe
Comment dois-je modifier mon code?
Essayez
parlez-vous
Je suis en utilisant
Oups désolé, portent sur 🙂 Mais encore; il n'y a pas
Je ne suis pas voyant un tableau.
for(const key of currentValues.keys())
si vous avez seulement besoin de les touches. Vous pouvez utiliser entries
si vous avez besoin de clés et de valeurs.parlez-vous
Object.keys()
? Si oui, il avait stiill être contestable, puisque l'itération à travers un tableau avec for ... in
est mal vu.Je suis en utilisant
for...of
?Oups désolé, portent sur 🙂 Mais encore; il n'y a pas
.keys()
la fonction de cet objet.Je ne suis pas voyant un tableau.
OriginalL'auteur user7334203 | 2017-05-05
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé les éléments suivants:
C'est exact, et sans ESLint erreurs.
OriginalL'auteur user7334203
Vous pouvez obtenir le tableau de toutes vos valeurs à l'intérieur de votre objet juste faire
OriginalL'auteur quirimmo
Je sais que c'est similaire à ce qui précède, mais voici un exemple complet:
OriginalL'auteur Andres Felipe
À l'aide de
for...in
va se répéter sur toutes les propriétés, y compris celles de l'Objet prototype. Je ne suis pas sûr de savoir pourquoi vous faitesObject.prototype.hasOwnProperty.call(currentValues, key)
au lieu de simplement:
currentValues.hasOwnProperty(key)
.Je pense que cela devrait faire ESLint au courant que vous êtes de filtrage pour les propres propriétés.
Cependant, je vous suggère d'utiliser
for (const key of Object.keys())
, ce qui est plus sémantique.hasOwnPrototype(..)
deObject
est mieux. voir eslint.org/docs/rules/no-prototype-builtinsOriginalL'auteur jakow