data = [1.1, 4.2, 3.1, 2.6, 6.1, 5.0]
needle = rand 10
arr = data.map do |num|
[(num - needle).abs, num]
end
sorted = arr.sort_by {|sub_arr| sub_arr[0]}
puts needle
puts sorted.first[1]
--output:--
2
2.6
--
Posted via http://www.ruby-forum.com/.