Ruby 中的重复数组元素

Duplicate array elements in Ruby

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

我想将数组元素加倍,因此它 return 是 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", [...]]

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

怎么样

rangers.zip(rangers).flatten

使用 Array#zip and Array#flatten?

一个可以更好地概括您的第二个请求的解决方案可能是:

rangers.flat_map { |ranger| [ranger] * 2 }

使用 Enumerable#flat_map。 在这里,您可以将 2 替换为任何值或变量。