红宝石each_with_index偏移量
|
我可以在each_with_index循环迭代器中定义索引的偏移量吗?
我的直接尝试失败了:
some_array.each_with_index{|item, index = 1| some_func(item, index) }
编辑:
澄清:我不希望数组偏移量我希望each_with_index中的索引不是从0开始,而是1。
没有找到相关结果
已邀请:
10 个回复
屑凉赦
接收偏移作为可选参数:
输出:
顺便说一句,我认为它仅在1.9.2中存在。
链眷克袒姜
输出
Array#each返回一个枚举数,调用Enumerator#with_index返回另一个枚举数,将一个块传递给该枚举数。
漂截嘘
替换为ѭ7function:
但这可能不是您想要的。 2)接下来,您可以在块中定义另一个索引
,并使用它代替原始索引:
3)如果您想经常以这种方式使用索引,请定义另一种方法:
更新资料 几年前回答的这个答案现在已经过时了。对于现代红宝石,Zack Xu的答案会更好。
奥李
断跑胺弄萎
土投
UPD 我还要注意,如果offset大于您的Array大小,它将出现错误。因为:
我们在这里可以做什么:
或预验证偏移量:
这有点小气 UPD 2 就您更新问题而言,现在您不需要数组偏移量,而是索引偏移量,因此@sawa解决方案将对您有效
嗓瑰
这是完全可以接受的,并且比我所见过的大多数解决方案都要好。我一直以为#inject是为了...哦。
艰管垮淮
刷遍派戳
对于通用数组:
咖哀烈