我觉得这应该很简单,我只是碰壁而已。做到动作,直到条件得到满足
我需要遍历数组,直到满足条件。例如:
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