我有一个数组:
[1, 2, 3, 6, 8, 9, 10, 23, 34, 35, 36, 45, 50, 51, ...]
Run Code Online (Sandbox Code Playgroud)
我正在尝试删除每组连续的数字,所以我最终得到:
[6, 23, 45, ...]
Run Code Online (Sandbox Code Playgroud)
我正在寻找序列ID中的异常.有没有人有建议?
我的初始尝试只检查每个元素之前的id:
non_consecutive_ids = []
ids.each_with_index do |x, i|
unless x == ids[i-1] + 1
non_consecutive_ids << x
end
end
Run Code Online (Sandbox Code Playgroud)
我认为我缺少的是检查数组中的下一个元素是否比当前元素多1.
其他选择:
array.chunk_while { |i, j| i + 1 == j }.select { |e| e.size == 1 }.flatten
#=> [6, 23, 45]
Run Code Online (Sandbox Code Playgroud)
的良好的可枚举#chunk_while是,它需要两个参数.核心文档只是一个逐个增加子序列的例子.
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |