Ruby配列の最後の要素を除くすべての要素 質問する

Ruby配列の最後の要素を除くすべての要素 質問する

Rubyの配列があるとします

a = [1, 2, 3, 4]

最初の項目以外すべてが欲しい場合は、 と書くことができますa.drop(1)。これは便利です。最後アイテムですが、私はこの方法しか思いつきません

a[0..-2]   # or
a[0...-1]

しかし、どちらも を使用するほどクリーンではないようですdrop。他に見逃している組み込みの方法はありますか?

ベストアンサー1

多分...

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]

おすすめ記事