[1.5, 7, 3, 3.1, 3.3, 2.5, 6, 6.5, 5.4, 9, 10, 8]
如何对最大差异为2的数字进行分组?
[1.3, 3, 3.1, 3.3, 2.5]
[6, 6.5, 5.4, 7]
[8, 9, 10]
答案 0 :(得分:4)
通常情况下,Ruby有一个工具:
a = [ 1.5,7,3,3.1,3.3,2.5,6,6.5,5.4,9,10,8 ]
a.chunk_while do |prev,val|
(val - prev).abs <= 2
end
a.to_a
# => [[1.5], [7], [3, 3.1, 3.3, 2.5], [6, 6.5, 5.4], [9, 10, 8]]
chunk_while
方法有两个值,前一个值和当前值。当该块返回逻辑错误值时,它会分裂。