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", ...]
怎么样
rangers.zip(rangers).flatten
Run Code Online (Sandbox Code Playgroud)
可能会为您的第二个请求更好地推广的解决方案可能是:
rangers.flat_map { |ranger| [ranger] * 2 }
Run Code Online (Sandbox Code Playgroud)
使用Enumerable#flat_map.在这里你可以2用任何值或变量替换它.