0

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

@restaurants.each_with_index do |restaurant, i|

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

end

我该怎么做?

4

4 回答 4

4
@restaurants.reject!{|restaurant| restaurant.stars > 3}
于 2012-11-15T11:40:28.283 回答
3

你可以使用Array#delete_at(index):见ruby​​doc

但对您来说最好的方法是使用reject!( ruby​​doc ) 或delete_if( ruby​​doc )。

于 2012-11-15T11:33:58.477 回答
0
@restaurants.reject! {|restaurant| restaurant.stars > 3}
于 2012-11-15T11:42:20.547 回答
0

如果餐厅是一个数组,您可以使用 pop,例如

a = [ "a", "b", "c", "d" ]
a.pop     #=> "d"
a.pop(2)  #=> ["b", "c"]
a         #=> ["a"]
于 2012-11-15T11:34:34.183 回答