我有一个由数字和对应值组成的数组:
a = [[2, :foo], [5, :bar], ..., [17, :baz]]
假设没有两个数对具有相同的数字,并且这些数对按照其数字的值排序。基于数组a
,我想传递一个数字i
,该数字始终在a
中的最小数字和最大数字之间,并返回与不超过i
的数字配对的值。一些预期的返回值如下:
2 # => :foo
4 # => :foo
5 # => :bar
17 # => :baz
什么是最好的方法?使用哈希作为关键字处理范围存在问题,而使用
case
语句则难以动态适应a
。