2011-05-22 8 views

Respuesta

301

¿Qué hay de usar el método unshift?

ary.unshift(obj, ...) → ary
Prepends objects to the front of self, moving other elements upwards.

Y en uso:

irb>> a = [ 0, 1, 2] 
=> [0, 1, 2] 
irb>> a.unshift('x') 
=> ["x", 0, 1, 2] 
irb>> a.inspect 
=> "["x", 0, 1, 2]" 
+0

Esa es la que estaba buscando, olvidé el nombre. –

+0

@Ed: es por eso que marcas http://www.ruby-doc.org/. 'shift' y' unshift' operan al comienzo de una matriz, 'push' y' pop' al final. –

+1

Miré, simplemente no los vi en un análisis rápido. –

38

Puede utilizar insert:

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

Donde el primer argumento es el índice para insertar en y el segundo es el valor.

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

ser advertidos, es destructiva!

7

También puede utilizar array concatenation:

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

Esto crea una nueva matriz y no modifica el original.

4

Puede usar methodsolver para encontrar funciones de Ruby.

Aquí es un pequeño script,

require 'methodsolver' 

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

La ejecución de este imprime

Found 1 methods 
- Array#unshift 

Puede instalar methodsolver usando

gem install methodsolver 
+0

Genial, no pensé que esto sería posible escribir LOL –

+0

'irb> require 'methodsolver'' provoca' LoadError: no se puede cargar dicho archivo - method_source' from ... from '/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. –

+0

Intenta usar 'pry' en lugar de' irb' – akuhn

Cuestiones relacionadas