我有一系列浮动数字和一定的截止值:
myData = [1.3,1.5,1.7,1.7,16.7,18.4,19.2,19.5,19.6,20.2,20.8,58.4,60.7,
61.2,61.2,116.4,121.2,122.7,123.2,123.2,138.5,149.5,149.5]
myBin = 5.3
Run Code Online (Sandbox Code Playgroud)
我想构建一个数组哈希,以便最后一个元素和数组的第一个元素之间的减法差异小于或等于myBin(5.3)
myHash = {
'hap_1' => [1.3,1.5,1.7],
'hap_2' => [16.8, 18.4,19.2,19.5,19.6,20.2,20.8],
'hap_3' => [58.4,60.7,61.2,61.2],
'hap_4' => [116.4,121.2],
'hap_5' => [122.7,123.2,123.2],
'hap_6' => [138.5],
'hap_7' => [149.5,149.5]}
Run Code Online (Sandbox Code Playgroud)
非常感谢您的时间和有用的帮助.干杯
Enumerable#slice_before
可以解决你的问题:
first = myData[0]
myData.slice_before { |e| first = e if e - first > myBin }.to_a
#=> [[1.3, 1.5, 1.7, 1.7],
# [16.7, 18.4, 19.2, 19.5, 19.6, 20.2, 20.8],
# [58.4, 60.7, 61.2, 61.2],
# [116.4, 121.2],
# [122.7, 123.2, 123.2],
# [138.5],
# [149.5, 149.5]]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
67 次 |
最近记录: |