每个对模拟数组(压缩2个数组)

ДМИ*_*КОВ 2 ruby arrays

有each_pair方法允许在每次循环迭代时获得对散列:

{ 1 => "a", 2 => "b" }.each_pair do |key, value|
   # do something with #{key} and #{value}
end
Run Code Online (Sandbox Code Playgroud)

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

array.each do |element|
  # what is element index in array?
end
Run Code Online (Sandbox Code Playgroud)

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

这将是巨大的,如果是有某种方式来压缩一些阵列,1..阵列和得到这样的元组阵列["b", "d", "e"] ? [(1,"b"), (2,"d"), (3,"e")] and than pattern matched each element of the pair in| |`声明.

所以,最后,我正在寻找的是一些功能f,即:

f(["a"]) do |index, element|
  # index == 1, element == "a"
end
Run Code Online (Sandbox Code Playgroud)

Fro*_*ost 5

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