现在,这是阵列,
[1,2,3,4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)
我想要,
[1,2],[2,3],[3,4] upto [8,9]
Run Code Online (Sandbox Code Playgroud)
当我这样做时,每个我都得到了(2),
[[1,2],[3,4]..[8,9]]
Run Code Online (Sandbox Code Playgroud)
我目前这样做,
arr.each_with_index do |i,j|
p [i,arr[j+1]].compact #During your arr.size is a odd number, remove nil.
end
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法??
Jör*_*tag 40
Ruby读你的想法.你想利弊 ecutive元素?
[1, 2, 3, 4, 5, 6, 7, 8, 9].each_cons(2).to_a
# => [[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9]]
Run Code Online (Sandbox Code Playgroud)
.each_cons 完全符合你的要求.
[1] pry(main)> a = [1,2,3,4,5,6,7,8,9]
=> [1, 2, 3, 4, 5, 6, 7, 8, 9]
[2] pry(main)> a.each_cons(2).to_a
=> [[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9]]
Run Code Online (Sandbox Code Playgroud)
你几乎做对了:)
arr = [1,2,3,4,5,6,7,8,9]
arr.each_cons(2) do |chunk|
p chunk
end
# >> [1, 2]
# >> [2, 3]
# >> [3, 4]
# >> [4, 5]
# >> [5, 6]
# >> [6, 7]
# >> [7, 8]
# >> [8, 9]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4586 次 |
| 最近记录: |