从ruby中的数组中删除元素

时间:2012-11-15 11:32:24

标签: ruby

我有一个数组,我想删除一些元素。我尝试了这个,但它不起作用:

@restaurants.each_with_index do |restaurant, i|

if (restaurant.stars > 3)  @restaurants.slice!(i)     end

end

我该怎么做?

4 个答案:

答案 0 :(得分:4)

@restaurants.reject!{|restaurant| restaurant.stars > 3}

答案 1 :(得分:3)

您可以使用Array#delete_at(index):请参阅rubydoc

但最好的方法是使用reject!rubydoc)或delete_ifrubydoc)。

答案 2 :(得分:0)

如果餐馆是一个阵列,你可以使用pop,例如

a = [ "a", "b", "c", "d" ]
a.pop     #=> "d"
a.pop(2)  #=> ["b", "c"]
a         #=> ["a"]

答案 3 :(得分:0)

@restaurants.reject! {|restaurant| restaurant.stars > 3}