Probablemente haya una respuesta muy simple a esta pregunta, pero no puedo por el momento descubrirlo. Si tengo una matriz de rubíes de cierto tipo de objetos, y todos ellos tienen un campo en particular, ¿cómo puedo encontrar el elemento de la matriz que tiene el valor más grande para ese campo?Encontrar el elemento de una matriz de Ruby con el valor máximo para un atributo en particular
Respuesta
array.max_by do |element|
element.field
end
O:
array.max_by(&:field)
Consulte la documentación del módulo Enumerable para obtener más métodos útiles. –
¿Le sirve de ayuda?
my_array.max {|a,b| a.attr <=> b.attr }
(supongo que su campo tiene nombre attr
)
Sí, eso es exactamente lo que estaba buscando para, estaba recorriendo la api Array y no podía encontrar nada, olvídate de comprobar la API de Enumberable, ¡gracias! –
Siempre verifique la API Enumerable. ¡Tiene todo lo que necesita * y * el fregadero de la cocina! –
Prefiero usar 'max_by' porque es más fácil de usar: el bloque solo toma un solo argumento y no tiene que usar explícitamente el operador de nave espacial (' <=> '). –
También puede ordenar la matriz y luego obtener máximo, mínimo, el segundo mayor valor, etc.
array = array.sort_by {|k,v| v}.reverse
puts hash[0]["key"]
Si solo busca el mínimo o el máximo, los algoritmos son 'O (n)'. La ordenación es por mínimo 'O (n log n)'. No use esto a menos que lo necesite, ya que hay algunas pérdidas de rendimiento innecesarias. – Jamie
- 1. Encontrar el valor máximo de un atributo en una matriz de objetos
- 2. jQuery: Encuentre el elemento con un atributo personalizado particular
- 3. Encontrar el valor máximo en una columna con GQL
- 4. Obtener el elemento en la matriz con el valor máximo de una propiedad usando jQuery
- 5. Encontrar el valor numérico máximo en NSArray
- 6. Python- encontrar el elemento con eventos máximo en una lista
- 7. Obtener el valor máximo de un elemento en una matriz multidimensional?
- 8. C++ Ayuda para encontrar el valor máximo en un mapa
- 9. Función C++ para encontrar el valor máximo en una matriz de dobles?
- 10. consulta xpath para encontrar un elemento con una condición que coincida con el atributo y el valor del nodo secundario
- 11. Ruby: ¿Cómo encontrar el índice del elemento de matriz mínimo?
- 12. Encontrar todas las clases con un atributo en particular
- 13. ¿Cómo obtener el último elemento de una matriz en Ruby?
- 14. Regex: ¿cómo encontrar el valor entero máximo de un patrón?
- 15. ¿Cómo puedo encontrar el índice del valor máximo en una columna de matriz en MATLAB?
- 16. encontrar el valor máximo de un objeto secundario
- 17. Obtener un valor de atributo en el elemento xml
- 18. Xpath: encuentre un valor de elemento de una coincidencia del atributo id con el identificador id
- 19. Encontrar la posición del elemento máximo
- 20. Python: encontrar un elemento en una matriz
- 21. Encontrar el valor máximo en la columna de la tabla
- 22. Obteniendo el índice de un artículo particular en el arreglo
- 23. Encontrar programáticamente el tamaño máximo de matriz estática en C++
- 24. ¿Cómo ordenar una matriz en Ruby en un orden particular?
- 25. ¿Cómo puedo encontrar el máximo o el mínimo de una matriz multidimensional en MATLAB?
- 26. ¿Cómo encontrar elemento por valor de atributo en GPath?
- 27. ¿Cómo encontrar el índice del elemento con un valor mínimo?
- 28. Atributo de matriz para Ruby Modelo
- 29. Encontrar elemento específico basado en un atributo
- 30. ¿Agrupe una matriz multidimensional por un valor particular?
posible duplicado de [Más versión concisa de max/min sin el bloque] (http://stackoverflow.com/questions/7087717/more-concise-version-of-max-min-without-the-block) –