Hi.
I have following problem:
VALUES = [[‘value 1’, 1], [‘value 2’, 2], [‘value 3’, 3]]
I need a function that returns ‘value 1’ if I call the function with
parameter 1.
I tried this:
def value_name(value)
VALUES.select {|v| v[1] == 1}[0][0]
end
so value_name(1) returns ‘value 1’ but is there something more error
tolerant? E.g. returning ‘’ if value isn’t present instead of throwing
an error?
Changing the structure of VALUES is no option, I need exactly this
structure for options_for_select from the Rails framework
Thanks in advance
Andreas
Are you the one defining the data structure?
Or is it something you just have to use the way it is?
Because in this case, a hashmap would make more sense I believe.
On Wed, Dec 10, 2008 at 6:58 AM, Joao S. > I tried this:
def value_name(value)
VALUES.select {|v| v[1] == 1}[0][0]
end
did you really check that? it will always return “value 1”
so value_name(1) returns ‘value 1’ but is there something more error
tolerant? E.g. returning ‘’ if value isn’t present instead of throwing an error?
then just create it
eg,
def value_name3(value)
VALUES.each{|k,v| return k if v== value}
“”
end
=> nil
value_name3 1
=> “value 1”
value_name3 2
=> “value 2”
value_name3 3
=> “value 3”
value_name3 4
=> “”
value_name3 “asdf”
=> “”