我覺得這應該很簡單,我只是碰壁而已。做到動作,直到條件得到滿足
我需要遍歷數組,直到滿足條件。例如:
count = 0
array = ["","","test","demo"]
我想循環這個數組遞增計數1直到找到第一個非空值。所以我想索引值爲"test"
,但是當達到"test"
時,我想停止循環。
此外,作爲一個附註,我怎麼才能找到數組中的第一個非空值的索引?我想知道這兩種方法,因爲它們都有潛在的應用。
我覺得這應該很簡單,我只是碰壁而已。做到動作,直到條件得到滿足
我需要遍歷數組,直到滿足條件。例如:
count = 0
array = ["","","test","demo"]
我想循環這個數組遞增計數1直到找到第一個非空值。所以我想索引值爲"test"
,但是當達到"test"
時,我想停止循環。
此外,作爲一個附註,我怎麼才能找到數組中的第一個非空值的索引?我想知道這兩種方法,因爲它們都有潛在的應用。
可以兼得:)
此找到你的第一個非空字符串的指數:
array = ["","","test","demo"]
array.index {|str| !str.empty?}
#=> 2
您可以更新,如果你喜歡{|str| !str.empty?}
- 塊數,因爲Array#index
循環從開始到結束通過陣列。
FYI:該index
方法是find_index
更好地利用別名:
first_non_empty_index = array.index{ |string| !string.empty? }
做/而:
begin
puts arr[count]
count+=1
end while(arr[count].empty?)
puts count #2
puts arr[count] #test
eeeewwww。完全沒有慣用的ruby –
@mx Ruby支持很多樣式:O(O)P,Functional等。這種自由來自於責任,所以如果你想評論一下,說一些有意義的東西(例如:速度慢,你不能使用X等)不是垃圾郵件,因爲它不像X. –
澄清:Ruby DOES允許這樣的構造,但是如果你堅持這些,我認爲你錯過了語言的要點。 Ruby是關於表達的,所以編寫慣用代碼在這方面很重要。而且,你的代碼風格在作用域(count)中引入了一個不必要的變量。 YMMV表示道歉,這不是我的意圖 –
哎喲!你更快:) –
只有幾秒;) – tessi