2014-09-26 2 views
-1

Я хочу искать через массив:Поиск определенного элемента в массиве

letters = ["a", "b", "c", "d", "e"] 

, чтобы увидеть, если "b" в нем; если да, тогда он должен сказать «да». Я понимаю:

letters[0..0] == ["a"] 

Я попытался это:

if letters[0..5] == ["b"] 
    puts "Yes, the letter 'b' in there." 
else 
    puts "No 'b' in the array." 
end 
+0

letters.select {| l | l == 'a'} – crackedmind

+6

'if letters.include? (" b ")', пожалуйста, прочитайте [документацию] (http://www.ruby-doc.org/core-2.1.3/Array.html# class-Array-label-Receiving + Information + about + an + Array) – Stefan

+0

@crackedmind это не будет работать в 'if statement'. Он всегда будет проходить, поскольку он вернет хотя бы пустой массив. 'if letters.select {| l | l == 'a'} .count> 0; ставит «да, а есть»; end' - лучшее решение, которое я считаю. Но решение @ stefan должно быть принятым ответом. – Webdevotion

ответ

0
if letters.index('b') 
    puts "yes" 
else 
    puts "no" 
end 
4

Там есть метод в сборке, чтобы сделать это:

letters.include? "b"