Ruby中的重复数组元素

Igg*_*ggy 3 ruby arrays elements duplicates

我有一个数组rangers = ["red", "blue", "yellow", "pink", "black"] (有争议的是绿色应该是它的一部分,但我决定省略它)

我想将数组元素加倍rangers = ["red", "red", "blue", "blue", "yellow", "yellow", "pink", "pink", "black", "black"],以便按顺序返回.

我试着环顾四周,但我找不到按顺序做的方法.(rangers *= 2不会起作用).

我也试过了 rangers.map{|ar| ar * 2} #=> ["redred", "blueblue",...]

我试过了 rangers << rangers #=> ["red", "blue", "yellow", "pink", "black", [...]]

如何复制元素以在其旁边返回重复元素值?另外,如果可能的话,我想复制它n次,所以当n = 3它返回时["red", "red", "red", "blue", "blue", "blue", ...]

Jul*_*off 9

怎么样

rangers.zip(rangers).flatten
Run Code Online (Sandbox Code Playgroud)

使用Array#zipArray#flatten

可能会为您的第二个请求更好地推广的解决方案可能是:

rangers.flat_map { |ranger| [ranger] * 2 }
Run Code Online (Sandbox Code Playgroud)

使用Enumerable#flat_map.在这里你可以2用任何值或变量替换它.

  • 还有:`([rangers]*n).inject(&:zip).flatten` :) (2认同)