arrays - 通过 ruby​​ 数组成对迭代

标签 arrays ruby iterator

<分区>

我如何遍历 ruby​​ 数组并始终获得两个值,当前值和下一个值,例如:

[1,2,3,4,5,6].pairwise do |a,b|
  # a=1, b=2 in first iteration
  # a=2, b=3 in second iteration
  # a=3, b=4 in third iteration
  # ...
  # a=5, b=6 in last iteration
end

我的用例:我想测试一个数组是否已排序,通过使用这样的迭代器,我总是可以比较两个值。

我没有像在这个问题中那样搜索 each_slice:Converting ruby array to array of consecutive pairs

最佳答案

您正在寻找each_cons :

(1..6).each_cons(2) { |a, b| p a: a, b: b }
# {:a=>1, :b=>2}
# {:a=>2, :b=>3}
# {:a=>3, :b=>4}
# {:a=>4, :b=>5}
# {:a=>5, :b=>6}

关于arrays - 通过 ruby​​ 数组成对迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37967476/

相关文章:

c# - 迭代器何时应该返回 IEnumerator 而不是 IEnumerable?

arrays - 如何确定 C 中数组的大小?

arrays - 访问散列数组的更优雅的方式

ruby-on-rails - 如何将 Ruby 数组从我的 Heroku 控制台导出为 CSV?

ruby - Ruby 中使用 net-sftp 进行基于密码 key 的身份验证

html - nil 无法转换为 Time 值

java - Java 无限循环遍历 ArrayList

c++ - 程序在 cout 上崩溃并出现新行 "\n"

javascript - 在 JavaScript 中调用列表中的内容

java - 为什么 .hasNext() 方法返回 true?