Digamos que tengo una serieRuby: ¿Cuál es la forma más fácil de eliminar el primer elemento de una matriz?
[0, 132, 432, 342, 234]
Cuál es la manera más fácil para deshacerse del primer elemento? (0)
Digamos que tengo una serieRuby: ¿Cuál es la forma más fácil de eliminar el primer elemento de una matriz?
[0, 132, 432, 342, 234]
Cuál es la manera más fácil para deshacerse del primer elemento? (0)
Utilice el método shift
en la matriz de
>> x = [4,5,6]
=> [4, 5, 6]
>> x.shift
=> 4
>> x
=> [5, 6]
Si desea eliminar los elementos n de partida puede utilizar x.shift(n)
esto se debe marcar la respuesta correcta, ya que se da un ejemplo –
la explicación debe ser combinado en la respuesta correcta ya que el contenido es el mismo – Yolgie
[0, 132, 432, 342, 234][1..-1]
=> [132, 432, 342, 234]
Así que a diferencia shift
o slice
esto devuelve la matriz modificada (útil para uno revestimientos).
Uno de gotcha a tener en cuenta: si la matriz está vacía devuelve nil: '[] [ 1 ..- 1] => nil' y no '[]'. – Mohamad
¿No es '[1,2,3] .shift' un trazador de líneas único? – thekingoftruth
@thekingoftruth: sí, pero se evalúa como el elemento que arrojaste, no el resto de la matriz, por lo que toma otra línea. –
o a.delete_at 0
Esto es bastante limpio:
head, *tail = [1, 2, 3, 4, 5]
#==> head = 1, tail = [2, 3, 4, 5]
como está escrito en los comentarios, hay una ventaja de que no la mutación de la lista original.
muy inteligente, y funciona a la perfección. Una vez que hagas esto, tendrás las dos variables "cabeza" y "cola" a tu disposición. – nfriend21
Esto me recuerda mucho al ceceo. '(let ((head (car mylist)) (tail (cdr mylist)) ...)' – thekingoftruth
@thekingoftruth y me recuerda a Haskell ... ;-) – hurikhan77
a = [0,1,2,3]
a.drop(1)
# => [1, 2, 3]
a
# => [0,1,2,3]
y adicionalmente:
[0,1,2,3].drop(2)
=> [2, 3]
[0,1,2,3].drop(3)
=> [3]
La mejor respuesta desde (a) se evalúa como la matriz recortada, y funciona como se esperaba en una matriz vacía: '[] .drop (1) => []' –
También la mejor respuesta porque OP dijo "¿cuál es la forma más fácil de deshacerse de la primer elemento " – notaceo
** Mejor respuesta ** mucho mejor que los demás –
Puede utilizar Array.delete_at (0) método que eliminará primer elemento.
x = [2,3,4,11,0]
x.delete_at(0) unless x.empty? # [3,4,11,0]
No creo 'a menos que x.empty?' Sea necesario. Simplemente devuelve 'nil' si el índice está fuera de rango. – tknomad
método de usar el desplazamiento de
array.shift(n) => Remove first n elements from array
array.shift(1) => Remove first element
que puede utilizar:
arr - [arr[0]]
o de lo contrario arr - [arr.shift()]
o simplemente arr.shift(1)
'cambio' es pop y 'unshift' es push. En qué turno se toma el número de parámetros para pop – Arun