2012-02-07 63 views
0

我有陣列GET數組值bucle爲

numbers = [ 1, 2, 3, 4, 5, 6 ] 

我有一個變量:

number = 4 

我想和一個循環或每個塊返回false除非這種情況下,數字4中存在陣列。

numbers.each do |number_bucle| 
return false unless number_bucle == number 
end 

,但我得到的錯誤...

LocalJumpError:25:在irb_binding」

+0

此代碼是否爲了在此處發佈而被混淆?因爲有更好的方法來確定一個數組是否包含一個值。 – 2012-02-07 19:34:26

+0

你認爲你從哪裏回來? – meagar 2012-02-07 19:40:19

回答

1

除非你正在做的事情在你從張貼在這裏隱藏塊一樣,你爲什麼不只是做:

return false if numbers.include? number 

至於原因,你得到一個LocalJumpError有:如果你的代碼是不是在一個方法然後沒有任何東西可以返回(或者換句話說:沒有任何東西回到)。在這種情況下,你可能想設置一個變量,而不是回報,你會想做的事:

is_included = numbers.include? number 
+0

謝謝你,它工作正常。這個迴應是完美的。謝謝 – hyperrjas 2012-02-07 19:39:22

0

與嘗試在`塊:

numbers.include?(number) 
從(IRB)意外的返回

它應該工作。

+0

謝謝你的工作正常:D – hyperrjas 2012-02-07 19:39:05

0

正如其他人所說,你應該使用#include?檢查列入。還可以看看#any?#all?,它可用於檢查集合中的任何或所有元素是否與特定塊匹配。