Tomemos este ejemplo:¿Cómo obtener solo un subconjunto de un hash ordenado en Ruby 1.9?
d = {"a" => 1, "b" => 2, "c" => 3, "d" => 4}
Desde hashes están ordenados, puede ser que quiera obtener datos de a
a b
o desde c
a d
. El problema es que no puedo hacer d[0..1]
o d[2..3]
.
pude hacer sin embargo:
irb > d.to_a[0..1]
=> [["a", 1], ["b", 2]]
... pero esto se siente desordenado y no quiero emitir mi hash para una operación como ésta.
¿Existe una solución más limpia para manejar esto?
# Holy Grail
irb > d[0..1]
=> {"a" => 1, "b" => 2}
puedo ver cómo a mí mismo programar un procedimiento de este tipo, pero que podría haber algo nativa ya hecho que podría utilizar ...?
Una gama también podría ser una clave hash válido, por lo que tendrá que utilizar un método personalizado para esto. No creo que no haya nada incorporado, por cierto. – tokland