javascript vérifier pour voir si la valeur correspond à l'objet
J'ai un objet javascript
var obj = {
"0" : "apple",
"1" : "pear",
"2" : "orange"
}
Je veux vérifier si 'orange' est dans obj.
Est-il intégré dans la fonction qui fait cela? Ou devrais-je le répéter sur chaque valeur de l'obj?
Grâce.
Si la performance est un problème, conservez un parallèle objet courant qui ressemble
{"apple": true, "pear": true, "orange": true}
. Ensuite, vous pouvez faire un très rapide "apple" in parallelObj
à faire de l'existence des contrôles.
OriginalL'auteur Mark | 2010-12-22
Vous devez vous connecter pour publier un commentaire.
Vous aurez à effectuer une itération:
Maintenant que "hasOwnProperty" test il y a pour vous assurer de ne pas tomber sur des propriétés héritées du prototype. Que pourrait ne pas être souhaitable dans certains cas, et vraiment c'est une des choses que vous sorte de besoin de comprendre afin de savoir si vous voulez ou ne voulez pas faire ce test. Les propriétés que vous prenez à partir d'un prototype de l'objet peuvent parfois être des choses déposés par les différentes bibliothèques. (Je pense que l'ES5 norme fournit les moyens de contrôler si ces propriétés sont "itératif", mais dans le monde réel il y a encore IE7.)
hasOwnProperty
et 0,5 pour des raisons de lisibilité.Bien que, tous les cool kids sont des tests avec
Object.prototype.hasOwnProperty.call(obj, k)
.Oui, bon point @sdleihssirhc - qui est certainement une bonne idée si il y a une préoccupation que les objets peuvent être "pollué" en quelque sorte 🙂
OriginalL'auteur Pointy
Il n'y a pas de fonction intégrée pour ce faire, vous devez avoir à vérifier chaque propriété.
Aussi par les regards de votre objet, il doit être un tableau au lieu d'un objet. Si c'était le cas, il serait un peu plus facile de faire une itération sur les valeurs et être un peu plus efficace.
OriginalL'auteur Coin_op
obj[id] == value
àobj.hasOwnProperty(id) && obj[id] == value
. Pensez aussi à utiliser des===
pour une égalité stricte au lieu de==
lâche pour l'égalité.OriginalL'auteur Herms
Vous pourriez voulez regarder jQuery.inArray. Pense que cela fonctionne pour les objets aswell.
OriginalL'auteur Mark Baijens