2012-09-27 2 views
4

Vous vous demandez simplement s'il existe la même méthode pour un objet Array similaire à indexOf dans JavaScript?indexOf in Ruby

Par exemple:

 
arr = %w{'a', 'b', 'c'} 
c = 'c' 
if (arr.indexOf(c) != -1) 
// do some stuff 
else 
// don't do some stuff 

Répondre

5

Il est la méthode .index de Array.

http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-index

En ruby, seulement false et nil sont considérés comme fausse valeur, vous pouvez donc faire:

arr = %w{a, b, c} 
c = 'c' 
if arr.index c 
    # do something 
else 
    # do something else 
end 
+0

Modifier votre réponse (http://stackoverflow.com/questions/12617036/ruby-why-arr-wa-bcabc/12617106#12617106), et obtiendra un point pour la bonne réponse –

+0

@DanMyasnikov Je viens d'utiliser le 'arr 'De votre question, oui '' c '' ne se trouve pas dans votre tableau,' '' c '"' fait. – xdazz

1

utiliser le tableau index # pour cela:

c = 'c' 
%w{a b c}.index(c) 
+0

Je pense que vous vouliez dire t o écrire '% w {a b c}' – waldrumpus

+0

@waldrumpus Oui, merci, a copypédé de la source dans la question. – Hck

+0

Donc vous avez - Désolé, j'aurais dû poster le commentaire ci-dessus. – waldrumpus

3

Si vous voulez vérifier la présence d'un élément dans le tableau, vous peut utiliser include?:

if arr.include?(c) 
    # do stuff 
else 
    # don’t 
end 
0
if arr.last == c 
    # do some stuff 
else 
    # don't do some stuff 
end