整数数组到范围数组

Gre*_*egy 3 ruby arrays range

我试图找出如何将整数数组更改为范围数组.例如,我想采取这个数组:

ar = [0, 49, 14, 30, 40, 23, 59, 101]
Run Code Online (Sandbox Code Playgroud)

ar = [0..49, 14..30, 40..23, 59..101]
Run Code Online (Sandbox Code Playgroud)

给定数组总是均匀的.我想将每两个值作为范围的边界.

我试图将它分成两个数组.一个奇数指数第二个偶数.

a = ar.select.with_index{|_,i| (i+1) % 2 == 1}
b = ar.select.with_index{|_,i| (i+1) % 2 == 0}
Run Code Online (Sandbox Code Playgroud)

我不知道如何使用它们来创建范围,我也想避免创建像a和的冗余变量b.我不想排序任何值.范围40..23是故意的.

und*_*gor 11

 ar.each_slice(2).map { | a, b | a..b }
Run Code Online (Sandbox Code Playgroud)