Tengo una matriz. Necesito mantener todo excepto el elemento en el índice 0. Mi cerebro está frito en este punto. He estado programando todo el día. Cualquier ayuda sería increíble. ¡Gracias!Ruby Quitar el primer índice de una matriz
Respuesta
Utilice el método Array#shift
, que hace exactamente lo que quiere :
a = [1, 2, 3]
a.shift # => 1
a # => [2, 3]
Podría haber jurado que intenté esto ya. Parecía tan fácil. Debo haber tenido un error tipográfico o algo así. Gracias –
Para una mnemónica divertida (vulgar) que lo ayude a recordar si 'shift' o' unshift' quita elementos de la matriz, intente soltar la "f" del nombre. :) – Phrogz
@Phrogz: lol, me encanta. – maerics
Se podía utilizar índice de matriz rebanar:
some_array[1..-1]
o, si desea modificar de forma permanente una variable, howsabout:
some_array = [1,2,3,4]
some_array.delete_at(0)
# => 1
some_array
# => [2,3,4]
¿qué tal porción!
a = [ "a", "b", "c"]
a.slice! (0) # => "a"
un # => [ "b" , "c"]
http://www.ruby-doc.org/core-2.1.0/Array.html#method-i-slice-21
Dependiendo de cómo lo que se hará con el resultado (una matriz con el primer elemento eliminado) hay diferentes maneras de conseguir el resultado y cómo va a ser utilizado puede afecta la elección.
Una forma cambia la matriz original a una nueva matriz con el primer elemento eliminado mediante la aplicación de un método, ignorando el resultado de ese método y logrando el resultado deseado debido al efecto secundario del método aplicado. El PO aceptó una respuesta que hizo esto (lo que implica que funcionó en su caso):
a = [ "a", "b", "c" ]
a.shift #=> "a"
a #=> ["b", "c"]
que funciona bien si desea que preservaron la matriz resultante, pero su necesidad es dejar caer algún método en el medio de una cadena de de los métodos existentes para "deshacerse de ese primer elemento de matriz". Pero, en mi caso, tenía una matriz donde el primer elemento era una línea de encabezado producida por un comando del sistema seguido de varias líneas de la salida de ese comando, una en cada elemento de la matriz y modificaba las líneas para lograr el resultado deseado cuando se dio cuenta de que la línea de encabezado debía eliminarse ya que, al ser una forma diferente de las líneas restantes, no se manejaba correctamente y no era necesaria. Mi línea de código original parecía algo como esto (donde, de nuevo, a
es la matriz):
puts a.method1.method2.method3.method4
y yo quería hacer esto:
puts a.method1.method2.removeFirstElement.method3.method4
Una forma de hacer esto mediante el uso slice
se mostró en una respuesta diferente a pesar de que no estaba claro cómo podría ser mejor en algunos casos que la respuesta aceptada:
puts a.method1.method2.slice(1..-1).method3.method4
Si usara la respuesta aceptada lo haría ja ve a hacer algo como esto:
temp = a.method1.method2
temp.shift
puts temp.method3.method4
Además de la necesidad de revisar la estructura de código original (aunque hay pros y contras para que en función de lo que se hace), es necesario crear un nuevo objeto temporal ('temp ') solo para llegar al resultado.
Es bueno saber que a donde nos dirigimos a menudo tiene un efecto definitivo sobre cómo llegar.
(Voy a señalar que casi me atrevería a preferir el uso de slice!(0)
en lugar de shift
para cambiar realmente la matriz desde el punto de exclamación deja claro que se va a cambiar la matriz; el método shift
no se ajusta a la sugerencia actual de agregar un signo de exclamación a los métodos que alterarán un objeto. Pero, ¡ay !, probablemente use shift
para evitar el desorden del (0)
.)
- 1. PHP quitar el primer índice de un array y volver a indexar
- 2. Empujar el valor de la matriz al primer índice
- 3. Quitar el primer elemento de $ @ en bash
- 4. Array push como el primer índice PHP
- 5. Obtener el primer elemento de una matriz de JavaScript dispersa
- 6. Saltando el primer elemento de una matriz
- 7. Ruby: ¿Cómo encontrar el índice del elemento de matriz mínimo?
- 8. ¿Quitar objetos idénticos en Ruby?
- 9. Python verifique el primer y último índice de una lista
- 10. ¿El primer índice de la lista contiene una subcadena?
- 11. Jquery quitar el elemento de la matriz
- 12. Ruby: ¿Cuál es la forma más fácil de eliminar el primer elemento de una matriz?
- 13. quitar el botón delete en primer conjunto de campos
- 14. Utilizando C# LINQ para volver primer índice de null/ocurrencia vacía en una matriz
- 15. Ruby: Cómo obtener el primer carácter de una cadena
- 16. Encuentra el primer índice de aparición/inicio de la sub-matriz en C#
- 17. Ruby: ¿Cómo agrupar una matriz de Ruby?
- 18. eliminar el primer elemento de la matriz
- 19. matriz de clasificación de ruby de una matriz
- 20. ¿Cómo obtener el primer elemento de una matriz PHP asociativa?
- 21. Convertir el índice de matriz 1D en el índice de matriz 2D
- 22. python - obtener lista de tuplas primer índice?
- 23. PHP - Obtener el índice de un elemento de una matriz
- 24. suma acumulativa de una matriz de numpy por el índice
- 25. primer elemento de matriz - jQuery
- 26. de quitar el primer carácter de una cadena si es igual a algo
- 27. RestKit mapKeyPath en el índice de matriz
- 28. Eliminar solo el primer elemento de una selección de jquery
- 29. ¿Cómo obtengo el índice de un elemento en una matriz?
- 30. Poblar una matriz de PHP: verifique primero el índice?
http://whathaveyoutried.com? –