1. ホーム
  2. ruby

[解決済み] Ruby配列の最後の要素を除くすべての要素

2022-05-09 19:36:05

質問

例えば、Rubyの配列があるとします。

a = [1, 2, 3, 4]

もし、最初の項目以外が必要なら、次のように書けばよい。 a.drop(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]