web-dev-qa-db-ja.com

要素を配列の先頭にプッシュする最も簡単な方法は何ですか?

これを行う1行の方法は考えられません。方法はありますか?

187
Jeremy Smith

unshift メソッドの使用はどうですか?

ary.unshift(obj, ...) → ary
オブジェクトを自分の前に追加し、他の要素を上に移動します。

そして使用中:

irb>> a = [ 0, 1, 2]
=> [0, 1, 2]
irb>> a.unshift('x')
=> ["x", 0, 1, 2]
irb>> a.inspect
=> "["x", 0, 1, 2]"
361
mu is too short

insertを使用できます:

a = [1,2,3]
a.insert(0,'x')
=> ['x',1,2,3]

ここで、最初の引数は挿入するインデックスで、2番目は値です。

43
Ed S.
array = ["foo"]
array.unshift "bar"
array
=> ["bar", "foo"]

注意してください、それは破壊的です!

20
John H

array concatenation を使用することもできます。

a = [2, 3]
[1] + a
=> [1, 2, 3]

これにより、新しい配列が作成され、元の配列は変更されません。

9
ma11hew28

methodsolverを使用して、Ruby関数を見つけることができます。

ここに小さなスクリプトがあります、

require 'methodsolver'

solve { a = [1,2,3]; a.____(0) == [0,1,2,3] }

この印刷を実行する

Found 1 methods
- Array#unshift

を使用してmethodsolverをインストールできます

gem install methodsolver
7
akuhn

Ruby 2.5.0以降、Arrayにはprependメソッド(unshiftメソッドの単なるエイリアス)が付属しています。

3
steenslag