[arrays] What is the easiest way to push an element to the beginning of the array?

I can't think of a one line way to do this. Is there a way?

This question is related to arrays ruby

The answer is


You can use methodsolver to find Ruby functions.

Here is a small script,

require 'methodsolver'

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

Running this prints

Found 1 methods
- Array#unshift

You can install methodsolver using

gem install methodsolver

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

be warned, it's destructive!


You can use insert:

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

Where the first argument is the index to insert at and the second is the value.


Since Ruby 2.5.0, Array ships with the prepend method (which is just an alias for the unshift method).


You can also use array concatenation:

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

This creates a new array and doesn't modify the original.