Ruby 配列の最後の要素を除くすべての要素
概要
Ruby 配列があるとします。
a = [1, 2, 3, 4]
最初の項目以外のすべてが必要な場合は、.drop(1) を書くことができます。これは素晴らしいことです。でも最後の1つ以外全部欲しいならこうするしかない
a[0..-2] # or
a[0...-1]
しかし、どちらも、drop を使用するほどクリーンには見えません。他に不足している組み込みの方法はありますか?
解決策
多分…
a = t # => [1, 2, 3, 4]
a.first a.size - 1 # => [1, 2, 3]
または
a.take 3
または
a.first 3
または
a.pop
これは最後のものを返し、その前のすべての配列を残します
または、夕食のためにコンピュータを動作させます。
a.reverse.drop(1).reverse
または
class Array
def clip n=1
take size - n
end
end
a # => [1, 2, 3, 4]
a.clip # => [1, 2, 3]
a = a + a # => [1, 2, 3, 4, 1, 2, 3, 4]
a.clip 2 # => [1, 2, 3, 4, 1, 2]