sort_by y group_by en Ruby
Ordenar y agrupar con una función de clave en vez de un comparador.
langs = %w[ruby python go rust c javascript]
puts langs.sort.inspect
puts langs.sort_by(&:length).inspect
puts langs.min_by(&:length)
puts langs.max_by(&:length)
by_initial = langs.group_by { |w| w[0] }
puts by_initial.inspect
# ordena por dos claves: longitud descendente y luego alfabética
puts langs.sort_by { |w| [-w.length, w] }.inspect
Cómo funciona
sort_by(&:length)ordena por lo que sea que calcule el bloque.min_byymax_byhallan los extremos con la misma regla.group_byreparte los elementos en un hash con la clave que da el bloque.- Una clave de arreglo como
[-w.length, w]ordena por dos criterios a la vez.
Palabras clave y builtins usados aquí
puts
El intento, en números
- Líneas
- 12
- Caracteres a escribir
- 344
- Tokens
- 75
- Ritmo de tres estrellas
- 75 tpm
Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 60 segundos.
Paso 1 de 3 en Enumerable; paso 13 de 29 en Fundamentos del lenguaje.