2009-07-13 7 views

Répondre

29

il a un in operator mais est limitée à l'objet clés uniquement:

var object = { 
    a: "foo", 
    b: "bar" 
}; 

// print ab 
for (var key in object) { 
    print(key); 
} 

Et vous pouvez aussi l'utiliser pour des contrôles comme celui-ci:

if ("a" in object) { 
    print("Object has a property named a"); 
} 

Pour vérifier si la chaîne vous devez utiliser la méthode indexOf():

if ("abc".indexOf("a") > -1) { 
    print("Exists"); 
} 
+1

Pourquoi ce downvoted? C'est la seule réponse qui répond réellement à la question ..? – peirix

+0

La question consiste à trouver une chaîne dans une chaîne. –

+0

Aha. Je ne connais pas Python, donc j'ai lu la question à propos de l'instruction 'in' en javascript. Ça a du sens maintenant. – peirix

2

On dirait que vous avez besoin d'expressions régulières!

if ("dea".match(/a/)) 
{ 
    return true; 
} 
+5

C'est en utilisant un marteau pour mettre en place un crochet d'image. Utilisez indexOf. – Quentin

+3

"dea" .test (/ a) est plus efficace dans ce contexte car il retourne juste vrai ou faux, éliminant le temps de construction d'un objet de correspondance et travaillant ensuite s'il est nul ou pas pour dériver vrai ou faux avant de le lancer un moyen. – NickFitz

+0

Aussi, ce que dit @DavidDorward ;-) – NickFitz

6

vous devez utiliser indexOf

par exemple

"dea".indexOf("a"); retournera 2

Si son pas dans l'élément, puis il retournera -1

Je pense que c'est ce que vous êtes après.

1

Avec la fonction indexOf, vous pouvez étendre la chaîne comme par exemple:

String.prototype.in = function (exp) { 
    return exp.indexOf(this) >= 0; 
} 

if ("ab".in("abcde")) { //true 

} 
+0

Et les gens m'ont accusé d'utiliser un marteau pour mettre en place un crochet d'image ...: P –

+1

haha ​​bien j'ai toujours utilisé indexOf, pas regExp; P ... je viens de le rendre plus facile à utiliser –

+0

Je préfère faire une chaîne Méthode .prototype.contains (sous-chaîne). En tout cas, bonne idée. –

Questions connexes