No puedo pensar en una sola línea de manera de hacer esto. Hay una manera?

InformationsquelleAutor Jeremy Smith | 2011-05-22

6 Comentarios

  1. 362

    Lo que sobre el uso de la unshift método?

    ary.unshift(obj, ...) → ary

    Antepone los objetos a la parte delantera del auto, mover otros elementos hacia arriba.

    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]"
    • Ese es el que yo estaba buscando, olvidé el nombre.
    • Es por eso que usted marcador ruby-doc.org. shift y unshift operan sobre el principio de una matriz, push y pop en la final.
    • Me miró, solo que no los vea en un análisis rápido.
    • El método de la lista en la parte superior de la página podría ser mejor formato, es muy difícil para una búsqueda visual como es. Me pareció, porque sabía que el nombre del método que yo estaba buscando 🙂
    • Si usted está teniendo problemas para recordar entre shift y unshift como a los que se agrega a la matriz y que elimina de la matriz, la caída de una ‘f’ a partir de los nombres mentalmente y se obtiene un todo-demasiado-visión clara de la dirección. (Y entonces usted tiene que recordar que estos métodos no funcionan en la «final» de la matriz. 😉
    • La mejor técnica mnemotécnica que he escuchado en años! 🙂
    • Creo que vale la pena mencionar que unshift es mucho más lento que el empuje. Creo inserción es O(1), mientras que unshift es O(n) – me corrija si estoy equivocado. Definitivamente no uso unshift muchas veces en las matrices grandes. Cambio y el pop en el otro lado parecen tener el mismo tiempo de la complejidad.

  2. 43

    Puede utilizar insert:

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

    Donde el primer argumento es el índice para que se lo coloque y el segundo es el valor.

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

    se advirtió, es destructiva!

  4. 7

    Puede utilizar methodsolver encontrar Ruby funciones.

    Aquí es un pequeño script,

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

    Ejecución de esta impresiones

    Found 1 methods
    - Array#unshift

    Puede instalar methodsolver utilizando

    gem install methodsolver
    • Genial, no creo que esto sería posible escribir LOL
    • 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.
    • Trate de usar pry en lugar de irb
  5. 3

    Desde Ruby 2.5.0, Matriz de buques con el prepend método (que es sólo un alias para el unshift método).

    • Esto también funciona con ruby 2.4.4p296, así que tal vez sólo con ruby 2.4?

Dejar respuesta

Please enter your comment!
Please enter your name here