Hi!
suppose I have this hash:
data = { "a" => 1, "b" => 2, "c" => 3 }
I'd like to get a random pair from the hash.
so
data.get_pair(data.rand)
should return ["b", 2] for example.
How could this be done? I cannot find any method in the documentation.
Thank You!
david
···
--
Posted via http://www.ruby-forum.com/.
D. Krmpotic wrote:
Hi!
suppose I have this hash:
data = { "a" => 1, "b" => 2, "c" => 3 }
I'd like to get a random pair from the hash.
so
data.get_pair(data.rand)
should return ["b", 2] for example.
How could this be done? I cannot find any method in the documentation.
class Hash
def get_rand_pair
key = self.keys[rand(self.length)]
[key, self[key]]
end
end
···
--
Alex
class Hash
def random_pair
to_a[rand(size)]
end
end
Note that what you asked for here is not getting the n-th pair as your
title suggests. That's problematical with a hash since hashes have no
defined ordering.
But to get a random key-value pair this should work.
···
On 3/23/07, D. Krmpotic <david.krmpotic@gmail.com> wrote:
Hi!
suppose I have this hash:
data = { "a" => 1, "b" => 2, "c" => 3 }
I'd like to get a random pair from the hash.
so
data.get_pair(data.rand)
should return ["b", 2] for example.
How could this be done? I cannot find any method in the documentation.
Thank You!
david
--
Rick DeNatale
My blog on Ruby
http://talklikeaduck.denhaven2.com/
Great! Thank you both.. didn't think of those simple solutions.
···
--
Posted via http://www.ruby-forum.com/.