¿Cómo puedo implementar esto en Ruby? ¿Hay alguna línea de técnica de código? Digamos que quiero deshacerme de todos los elementos que son menos de 3 de una matriz de enteros.¿Cómo eliminar todos los elementos que satisfacen una condición en el conjunto en Ruby?
Respuesta
Puede utilizar cualquiera new_array = array.reject {|x| x < 3}
(reject
devuelve una nueva matriz) o array.reject! {|x| x < 3}
(aka reject!
delete_if
modifica la matriz en su lugar).
También está el (algo más común) select
método, que actúa como reject
salvo que se especifique la condición de mantener los elementos, no rechazar ellos (es decir, para deshacerse de los elementos de menos de 3, tendrá que utilizar new_array = array.select {|x| x >= 3}
)
a = [ "a", "b", "c" ]
a.delete_if {|x| x >= "b" } #=> ["a"]
Probablemente la pena señalar que
array.reject! {|x| x < 3}
y
array.delete_if {|x| x < 3}
son los mismos, pero
array.reject {|x| x < 3}
seguirá siendo devolver el mismo resultado, pero no cambiar la "matriz" .
Esto funciona bien para números y letras en orden alfabético. se comparan sus valores, ¿qué pasa si las condiciones cambian?
array = ["Type", ": Jointed", "Axes", ": 6", "Reach", ": 951 mm", "Capacity", ": 6 Kg", "Uses", ": ", "Arc welding, material handling, machine loading, application", "This particular unit is in excellent condition with under 700 hours."]
Tenemos que eliminar todos los elemetns después de la "usos" valor ejemplo:
array = ["Type", ": Jointed", "Axes", ": 6", "Reach", ": 951 mm", "Capacity", ": 6 Kg"]
lo tanto, que desition no está funcionando (que acaba de quitar un elemento):
array.delete_if {|x| x >= "Uses" }
["Type", ": Jointed", "Axes", ": 6", "Reach", ": 951 mm", "Capacity", ": 6 Kg", ": ", "Arc welding, material handling, machine loading, application", "This particular unit is in excellent condition with under 700 hours."]
- 1. scala Eliminar (en su lugar) todos los elementos de un ListBuffer que cumplan con una condición
- 2. cómo eliminar todos los elementos en una tabla de Lua?
- 3. Eliminar todos los elementos de una lista
- 4. Obtenga todos los elementos LI en el conjunto
- 5. ¿Cómo contar cuántos elementos satisfacen una condición de una manera idiomática?
- 6. ¿Cómo eliminar todos los elementos en String array en java?
- 7. ¿Cómo eliminar todos los elementos de ListBox?
- 8. Rieles: elimine todos los registros que cumplan una condición
- 9. Cómo eliminar todos los elementos de SQLite en Android
- 10. ¿Cómo comprobar si todos los elementos de una lista coinciden con una condición?
- 11. Cómo eliminar todos los caracteres que no sean ASCII de una cadena en Ruby
- 12. ¿Cómo eliminar elementos en conjunto el contenido de ArrayController (Ember)
- 13. Eliminar todos los elementos dentro de linearlayout
- 14. Eliminar elementos del conjunto en Java
- 15. ¿Cómo multiplico todos los elementos en una colección con todos los elementos en otra colección?
- 16. Eliminar una clase para todos los elementos secundarios
- 17. Cómo dividir una cadena en Ruby y obtener todos los elementos, excepto el primero?
- 18. Eliminar todos los niños en DOM elementos div
- 19. todos los elementos en una lista
- 20. Asignar una matriz que modifique solo los elementos que coincidan con una determinada condición
- 21. Rails 3 eliminar todos los elementos de una matriz
- 22. ¿Cómo puedo eliminar todos los elementos que coincidan con xpath en python usando lxml?
- 23. ¿Seleccionar todos los elementos de una columna en una matriz de matrices en Ruby?
- 24. Cómo eliminar la lista vista de todos los elementos
- 25. Cómo desencadenar eventos en todos los elementos
- 26. C# - Lista - eliminar todos los elementos pero NO los primeros
- 27. NSPredicar para filtrar todos los elementos que están en otro conjunto
- 28. Eliminar elementos duplicados de la matriz en Ruby
- 29. ¿Cómo mejorar el código que cita todos los elementos de la matriz con `'` y devuelve una cadena que contiene todos los elementos entre comillas y separados por comas?
- 30. ¿Cómo obtener una lista de todos los elementos que residen en el punto cliqueado?
Gracias por la técnica genial;) – Chan
Ruby's ['# delete_if'] (http://ruby-doc.org/core-2.2.0/Array.html#method-i-delete_if) y [' #reject! '] (http://ruby-doc.org/core-2.2.0/Array.html#method-i-reject-21) son sli terriblemente diferente. 'reject!' devuelve 'nil' si no se cambiaron los elementos y cambia la matriz cada vez que se llama al bloque. – jwadsack