Help us understand the problem. What is going on with this article?

Rubyの配列で使えるメソッド

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"]

この場合は一度ループ処理をしているので各配列から一つずつ要素が出力されています。
これを応用してアプリの機能が実装できました。

配列面白いですよね。

参考

Ruby 2.7.0 リファレンスマニュアル

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした