首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >阵列的Each_pair模拟(压缩2个阵列)

阵列的Each_pair模拟(压缩2个阵列)
EN

Stack Overflow用户
提问于 2012-06-26 19:41:14
回答 2查看 1.1K关注 0票数 2

有一种each_pair方法可以在每次循环迭代时获得散列对:

代码语言:javascript
代码运行次数:0
运行
复制
{ 1 => "a", 2 => "b" }.each_pair do |key, value|
   # do something with #{key} and #{value}
end

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

代码语言:javascript
代码运行次数:0
运行
复制
array.each do |element|
  # what is element index in array?
end

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

如果有某种方法可以用1..数组压缩一些数组,并获得像["b", "d", "e"] → [(1,"b"), (2,"d"), (3,"e")] and than pattern matched each element of the pair in| |`语句这样的元组数组,那就太好了。

所以,最后,我要寻找的是某个函数f,即:

代码语言:javascript
代码运行次数:0
运行
复制
f(["a"]) do |index, element|
  # index == 1, element == "a"
end
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-26 19:47:20

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

票数 5
EN

Stack Overflow用户

发布于 2012-06-26 19:47:45

如果我错了,请纠正我,但我假设您想要一个由具有原始所有数组索引和值的子数组组成的数组?

代码语言:javascript
代码运行次数:0
运行
复制
a= ["b", "d", "e"]
a.enum_with_index.map {|ind, val| [ind, val]
=> [[0, "b"], [1, "d"], [2, "e"]]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11206549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档