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


回答:


387

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]"

それは私が探していたもので、名前を忘れました。
Ed S.

1
見たところ、クイックスキャンでそれらが表示されませんでした。
Ed S.

1
@Ed:ページの上部にあるメソッドリストはより適切にフォーマットされている可能性があり、そのままでは視覚的にスキャンすることが非常に困難です。私が探していたメソッド名を知っていたので見つけました:)
muが短すぎます

118
配列に追加するものと配列から削除するものの間shiftで覚えているのに問題がある場合はunshift、名前から「f」を頭の中で落とすと、方向が非常に明確になります。(そして、これらのメソッドは配列の「終わり」では機能しないことを覚えておく必要があります。)
Phrogz

3
@Phrogz私が何年も聞いた中で最高のニーモニックテクニック!:-)
コヌン2013

47

使用できますinsert

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

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


23
array = ["foo"]
array.unshift "bar"
array
=> ["bar", "foo"]

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



11

Ruby 2.5.0以降、Arrayはprepend メソッドに同梱されています(これはメソッドの単なるエイリアスですunshift)。


1
これはルビー2.4.4p296でも機能するので、ルビー2.4でも機能するのでしょうか。
Obromios 2018

9

methodsolverRuby関数を検索するために使用できます。

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

require 'methodsolver'

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

このプリントを実行する

Found 1 methods
- Array#unshift

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

gem install methodsolver

かっこいい、これでLOLを書くことができるとは思いませんでした
MarkoAvlijaš2017年

irb> require 'methodsolver'LoadError: cannot load such file -- method_source...からの原因/var/lib/gems/1.9.1/gems/methodsolver-0.0.4/lib/methodsolver.rb:2。0.9.6 IRBルビー1.9.3p484、Ubuntuの14
カミーユGoudeseune

1
pry代わりに使用してみてくださいirb
akuhn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.