在Ruby中的两个独立数组中收集数组的所有元素和索引

时间:2017-02-16 17:14:23

标签: arrays ruby

假设我有一个数组array = [1,2,3,4,5]

我想在2个独立的数组中收集数组的所有元素和索引,如

[[1,2,3,4,5], [0,1,2,3,4]]

如何使用单个Ruby collect语句执行此操作?

我正在尝试使用此代码

array.each_with_index.collect do |v,k|
  # code
end

代码部分应该采用什么来获得所需的输出?

3 个答案:

答案 0 :(得分:1)

甚至更简单:

[array, array.each_index.to_a]

答案 1 :(得分:1)

我喜欢刚刚发布的第一个答案。不知道为什么这个人删除了它。

array.each_with_index.collect { |value, index| [value,index] }.transpose

实际上我正在使用我调用each_with_index方法的自定义矢量类。

答案 2 :(得分:0)

这是一个简单的方法:

array = [1,2,3,4,5]
indexes = *array.size.times
p [ array, indexes ]
# => [[1, 2, 3, 4, 5], [0, 1, 2, 3, 4]]

在repl.it上查看:https://repl.it/FmWg