Ruby数组怎么一次访问2个连续(链接)元素?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (8)

现在,这是阵列,

[1,2,3,4,5,6,7,8,9]

我想要,

[1,2],[2,3],[3,4] upto [8,9]

当我这样做的时候,each_slice(2)

[[1,2],[3,4]..[8,9]]

我目前正在这样做,

arr.each_with_index do |i,j|
  p [i,arr[j+1]].compact #During your arr.size is a odd number, remove nil.
end

有没有更好的办法??

提问于
用户回答回答于

代码:

[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]]
用户回答回答于

没什么改进了,

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]

扫码关注云+社区