ruby - Each_pair 模拟数组(压缩 2 个数组)

标签 ruby arrays

each_pair 方法允许在每次循环迭代时获取哈希对:

{ 1 => "a", 2 => "b" }.each_pair do |key, value|
   # do something with #{key} and #{value}
end

如何在每次循环迭代时都知道当前数组元素的索引?

array.each do |element|
  # what is element index in array?
end

有一个使用递增迭代器的无聊解决方案。但是那个迭代器 应该在循环之前分配,并且应该在每次循环时手动递增 迭代。这显然很无聊。

如果有某种方法可以用 1.. 数组和 获取元组数组,例如 ["b", "d", "e"] → [(1,"b"), (2,"d"), (3,"e")] 和 比模式匹配的对中的每个元素 | |` 语句。

所以,最后,我正在寻找的是一些函数f,它:

f(["a"]) do |index, element|
  # index == 1, element == "a"
end

最佳答案

您可以遍历数组并使用 Enumerable::each_with_index 获取当前索引

关于ruby - Each_pair 模拟数组(压缩 2 个数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11206549/

相关文章:

android - 显示来自 byteArray 的图像

javascript - Chai - 测试对象数组中的值

java - 数组长度 20 但我希望它在读取最后一个节点后就中断

ruby:curses:程序结束时不清除屏幕?

ruby - 这个示例 tcp 套接字编程事件顺序安全吗?

ruby-on-rails - 获取 float 的总和?

javascript - 如何按列值对二维数组进行排序?

c# - 索引数组存储内存

ruby - 为什么用 Nokogiri 解析 HTML 返回空白?

ruby - 如何在创建 SMIME 消息时使用 OpenSSL::PKCS7.sign 签名期间使用 SHA1 摘要