按编号过滤数组?

cjm*_*671 3 ruby arrays

我有一个包含数字列表的数组,例如

[10, 30, 50, 54, 56, 95, 97, 99] 
Run Code Online (Sandbox Code Playgroud)

如果我提供一个数字,例如52,它需要返回数组中的下一个最小数字,在这种情况下,它将是50.

最干净的方法是什么?

请说明是否必须先排序数组.

nes*_*eka 9

我会去做这样的事情(不需要排序):

[10, 30, 50, 54, 56, 95, 97, 99].select {|n| n < 52}.max
Run Code Online (Sandbox Code Playgroud)