2012-11-15 168 views
0

我有一個數組和我想刪除某些元素。我試過但不起作用:刪除數組元素中紅寶石

@restaurants.each_with_index do |restaurant, i| 

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

end 

我該怎麼辦?

+2

你會發現從HCK下面的答案。但是您可以先通過查看文檔輕鬆找到。 – Zane

回答

3

您可以使用Array#delete_at(index):看rubydoc

但你最好的辦法,是使用reject!rubydoc)或delete_ifrubydoc)。

0

如果餐廳是一個數組,你可以使用彈出,如

a = [ "a", "b", "c", "d" ] 
a.pop  #=> "d" 
a.pop(2) #=> ["b", "c"] 
a   #=> ["a"] 
4
@restaurants.reject!{|restaurant| restaurant.stars > 3} 
0
@restaurants.reject! {|restaurant| restaurant.stars > 3}