Trouver des par les valeurs dans le Tableau JavaScript
J'ai comme un tableau:
arr['key1'] = true;
arr['key2'] = true;
arr['key3'] = true;
...
arr['keyN'] = true;
À déterminer, quelqu'un touche un "faux" de la valeur?
- Éventuellement en double: stackoverflow.com/questions/143847 (peut ne pas fonctionner lors de la recherche pour
true
etfalse
tout de même). - Pourquoi est-ce un CW?
- Si vous avez un tableau, vous ne devriez pas être à l'aide non-propriétés numériques sur elle. Si vous avez besoin de non-propriétés numériques, utiliser un objet ordinaire.
- Felix, pouvez-vous répondre, que je peux le drapeau de votre réponse comme une décision.
Vous devez vous connecter pour publier un commentaire.
Malheureusement, la seule façon de le faire jusqu'à récemment était d'une boucle sur le tableau; si vous êtes en utilisant ce dans un navigateur de base de l'application, vous aurez probablement à faire de cette façon. Il y a de nouveaux éventail de fonctionnalités dans ECMAScript 5e édition (la nouvelle JavaScript) qui permettent de le faire de manière un peu différente, mais seulement certains navigateurs prennent en charge eux (et je ne suis pas sûr qu'ils avaient nécessairement être le cas).
Mais ce que vous avez décrit dans votre question est plus d'une carte (ou "dictionnaire;" parfois appelé tableau associatif) qu'un tableau numérique à base indexée truc). En JavaScript, "tableau" est généralement utilisé pour signifier numériquement-tableaux indexés (par exemple, créé par
[]
ounew Array
), et d'un "objet" est généralement utilisé pour les cartes (parce que tous les objets JavaScript sont des cartes). (Cela peut être un peu déroutant, car les tableaux sont objets. Mais ne vous inquiétez pas à ce sujet.) C'est donc un tableau:...alors que c'est un objet ("map", "dictionnaire", "tableau associatif"):
Votre utilisation de la non-indices numériques suggère que vous êtes vraiment en utilisant une carte, un tableau pas. La boucle de recherche ressemble à quelque chose comme ceci sur les cartes:
Là j'ai utilisé
if (!arr[key])
pour vérifier lafalse
valeur. Qui va arrêter surfalse
,undefined
,null
, ou une chaîne vide. Si vous voulez vraiment, vraimentfalse
, utilisezif (arr[key] === false)
à la place.Cela renvoie dès qu'un seul faux est trouvé.
Il y a une méthode jquery pour trouver une valeur dans le tableau javascript
$.inArray(faux, arr.);
Il retourne -1 si aucune correspondance trouvée
vous êtes nouveau à Javascript?