我需要在Ruby中键入后删除数组,例如:
=> ["Foo", "Bar", "Baz", "ooF", "raB", "zaB"] # Cut after "Baz"
=> ["Baz", "ooF", "raB", "zaB"] # result
有可能吗?我怎么能这样做?
答案 0 :(得分:5)
是的,只需指定从索引到-1(最后一个元素)的范围:
arr = ["Foo", "Bar", "Baz", "ooF", "raB", "zaB"]
arr[arr.index("Baz")..-1] # => ["Baz", "ooF", "raB", "zaB"]
答案 1 :(得分:1)
arr = ["Foo", "Bar", "Baz", "ooF", "raB", "zaB"]
arr.select { |s| s=='Baz'..nil ? 'Baz' : nil }
#=> ["Baz", "ooF", "raB", "zaB"]
看起来很奇怪?这里发生了什么?
答案 2 :(得分:1)
以下是另一种方法:
a = ["Foo", "Bar", "Baz", "ooF", "raB", "zaB"]
a.drop_while {|e| e != "Baz"}
#=> ["Baz", "ooF", "raB", "zaB"]
a.drop_while {|e| e != "Bazzzzzzz"}
#=> []