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)rubydocを参照してください

reject!ただし、 (rubydoc)またはdelete_ifrubydoc )を使用するのが最善の方法です。

于 2012-11-15T11:33:58.477 に答える
0

レストランが配列の場合、ポップを使用できます。

a = [ "a", "b", "c", "d" ]
a.pop     #=> "d"
a.pop(2)  #=> ["b", "c"]
a         #=> ["a"]
于 2012-11-15T11:34:34.183 に答える
0
@restaurants.reject! {|restaurant| restaurant.stars > 3}
于 2012-11-15T11:42:20.547 に答える