Railsアプリで配列データを分けて出力しようとした時に色々試したので記録しとこうと思います。
students = ["Tom","Mike"],["Sam","Eric"],["Billy"],["Jorge","Nancy","Rick"]
適当に配列を用意しました。
flatten
入力
p students.flatten
出力
["Tom", "Mike", "Sam", "Eric", "Billy", "Jorge", "Nancy", "Rick"]
配列がくっつきます。
join
入力
p students.join
出力
"TomMikeSamEricBillyJorgeNancyRick"
これもくっつきます。
flattenのクラスはArray、joinの場合はstringです。
ただ作ってたアプリでは複数の配列からランダムに一つずつ出力したかったため、これらでは上手くいかなくて(なぜかflattenでくっつかなかった)
sample
入力
p students.sample(1)
出力
[["Jorge", "Nancy", "Rick"]]
sampleは配列の要素を1個(引数を指定した場合は自身の要素数を越えない範囲で n 個) ランダムに選んで返します。
この場合はランダムに配列を1つ出力しています。
入力
students.each do |student|
p student.sample(1)
end
出力
["Mike"]
["Sam"]
["Billy"]
["Jorge"]
この場合は一度ループ処理をしているので各配列から一つずつ要素が出力されています。
これを応用してアプリの機能が実装できました。
配列面白いですよね。