Ruby从范围创建一个特定的数组

时间:2012-06-29 12:40:22

标签: ruby

我想知道如何使用ruby中的范围生成以下数组

["00","00","01","01","02", "02", ...... "10", "10"]

我想重复每个元素两次,这就是我正在寻找答案的部分。我可以生成如下单个元素

("00".."10").to_a

我知道我可以使用循环等来做到这一点,但我正在寻找一个更简单的一行代码

由于

2 个答案:

答案 0 :(得分:8)

使用Array#zipArray#flatten

a = ("00".."10").to_a
a.zip(a).flatten
# ["00", "00", "01", "01", "02", "02", "03", "03", "04", "04", "05", "05", "06", "06", "07", "07", "08", "08", "09", "09", "10", "10"]

答案 1 :(得分:6)

("00".."10").flat_map { |x| [x, x] }
#=> ["00", "00", "01", "01", ..., "10", "10"]