在Ruby中键入后删除数组

时间:2016-02-08 18:04:37

标签: ruby

我需要在Ruby中键入后删除数组,例如:

=> ["Foo", "Bar", "Baz", "ooF", "raB", "zaB"] # Cut after "Baz"
=> ["Baz", "ooF", "raB", "zaB"] # result

有可能吗?我怎么能这样做?

3 个答案:

答案 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"}
#=> []