No puedo pensar en una línea para hacer esto. ¿Hay alguna manera?
207
Puedes usar insert
:
a = [1,2,3]
a.insert(0,'x')
=> ['x',1,2,3]
Donde el primer argumento es el índice para insertar y el segundo es el valor.
array = ["foo"]
array.unshift "bar"
array
=> ["bar", "foo"]
ten cuidado, es destructivo!
También puede usar la concatenación de matriz :
a = [2, 3]
[1] + a
=> [1, 2, 3]
Esto crea una nueva matriz y no modifica el original.
Desde Ruby 2.5.0, Array se envía con el prepend
método (que es solo un alias para el unshift
método).
Puedes usar methodsolver
para encontrar las funciones de Ruby.
Aquí hay un pequeño guión,
require 'methodsolver'
solve { a = [1,2,3]; a.____(0) == [0,1,2,3] }
Ejecutando esto imprime
Found 1 methods
- Array#unshift
Puedes instalar métodosolver usando
gem install methodsolver
irb> require 'methodsolver'
causas LoadError: cannot load such file -- method_source
de ... de /var/lib/gems/1.9.1/gems/methodsolver-0.0.4/lib/methodsolver.rb:2
. Ruby 1.9.3p484, irb 0.9.6, Ubuntu 14.
pry
lugar deirb
shift
y enunshift
cuanto a qué se agrega a la matriz y cuál se elimina de la matriz, coloque una 'f' de los nombres mentalmente y obtendrá una imagen demasiado clara en cuanto a la dirección. (Y luego debe recordar que estos métodos no funcionan en el "final" de la matriz.;)