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
替换为任何值或变量。
我有一个数组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
替换为任何值或变量。