typestar

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

  1. sort_by(&:length) ordena por lo que sea que calcule el bloque.
  2. min_by y max_by hallan los extremos con la misma regla.
  3. group_by reparte los elementos en un hash con la clave que da el bloque.
  4. Una clave de arreglo como [-w.length, w] ordena por dos criterios a la vez.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 3 en Enumerable; paso 13 de 29 en Fundamentos del lenguaje.

← Anterior Siguiente →