6

Rubyで範囲を使用して次の配列をどのように生成できるのか疑問に思っていました

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

各要素を2回繰り返したいのですが、それが答えを探している部分です。以下のように単一の要素を生成できます

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

ループなどを使用してこれを実行できることはわかっていますが、より単純な1行のコードを探しています

ありがとう

4

2 に答える 2

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"]
于 2012-06-29T12:47:35.240 に答える
7
("00".."10").flat_map { |x| [x, x] }
#=> ["00", "00", "01", "01", ..., "10", "10"]
于 2012-06-29T12:59:06.100 に答える