How to map with index in Ruby?

前端 未结 10 680
走了就别回头了
走了就别回头了 2020-12-07 06:59

What is the easiest way to convert

[x1, x2, x3, ... , xN]

to

[[x1, 2], [x2, 3], [x3, 4], ... , [xN, N+1]]
10条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-07 07:43

    If you're using ruby 1.8.7 or 1.9, you can use the fact that iterator methods like each_with_index, when called without a block, return an Enumerator object, which you can call Enumerable methods like map on. So you can do:

    arr.each_with_index.map { |x,i| [x, i+2] }
    

    In 1.8.6 you can do:

    require 'enumerator'
    arr.enum_for(:each_with_index).map { |x,i| [x, i+2] }
    

提交回复
热议问题