質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

284閲覧

繰り返し要素を空の配列に入れたい

koko12

総合スコア1

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2023/06/06 08:02

編集2023/06/07 21:15

実現したいこと

whileやforなど繰り返し機能を使って、
空の配列に出力したいものを貯めて、最後にまとめたものを出力するコードを実装したいのですが、
書き方が分からずサンプルコードなど教えていただけないでしょうか?

前提

railsのコードで実装したいです
該当のソースコードはイメージで書いております

※追加事項

ruby

1sample = ["abc","def","hij"]

そのまま使いたくない理由としましては、
APIによって、"abc","def","hij"が作られるので、そのまま使えない感じになります。
纏めますと、空の配列に複数の値を入れて、
複数の値が纏めらた配列を出力するコードを作りたいです

該当のソースコード

ruby

1 2sample= "a" 3sample= "b" 4sample= "c" 5sample= "" 6 7#下記boxに、aだけじゃなく、b、c、””、を入れたい機能を作りたいです。 8box = [] 9sample.push(sample) 10 11p box 12期待したい出力結果 13["a","b","c",""] 14 15 16#伝えたい内容が違ったため、上記に新しくコードを記載 17sample = ["abc","def","hij"] 18sample.each do |i| 19 #下記空の配列に、abc、defを一つずつ入れたい 20 box = [] 21end 22puts box 23 24出力結果 25下記を期待しています 26 ["abc","def","hij"] 27

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2023/06/06 08:56

単にsampleをそのまま使う、ではよくない理由はどのようなものでしょうか?
koko12

2023/06/07 05:17

sampleはあくまでイメージで実際は 繰り返しによって、値が追加されていきます。 そのまま使うと、繰り返しの最初の"abc"しか出力されないと思います
guest

回答2

0

ベストアンサー

えっと、単にこれではよくないのですか?

ruby

1box = [] 2 3box << 'a' 4box << 'b' 5box << 'c' 6box << ''

投稿2023/06/07 05:48

maisumakun

総合スコア145177

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2023/06/07 05:49

sampleとboxの2つがある意図がわからないので、「もっとシンプルにすればいい」という考えになってしまいます。
koko12

2023/06/07 06:06

大量に値があった時でも、1行ずつ、こういう書き方になるんですね ご回答いただきありがとうございます!!
maisumakun

2023/06/07 06:16

> 大量に値があった時でも、1行ずつ、こういう書き方になるんですね 一気に入れたいなら、pushやconcatを活用する手段もあります。 (「何を行いたいか」がはっきりしていないためアドバイスしづらい状況です)
koko12

2023/06/07 06:17

ありがとうございます はっきりする書き方を磨いてまいります
guest

0

同じ内容であれば、そのまま使えば良いので、加工したい場合の話ですかね?
例えば、大文字化するとすると、
Rubyらしくない書き方:

Ruby

1box = [] 2sample.each do |i| # あるいは for i in sample とか 3 box << i.upcase 4end 5p box

Rubyらしい書き方1:(引数不要の1メソッドで変換できる場合限定)

Ruby

1box = sample.map(&:upcase) 2p box

Rubyらしい書き方2:(大文字化してさらに空白を削除など「引数不要の1メソッド」じゃない場合)

Ruby

1box = sample.map{|i| i.upcase.gsub(/\s/,"")} 2p box

投稿2023/06/06 09:34

編集2023/06/06 09:41
otn

総合スコア84459

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koko12

2023/06/07 05:20

そのまま使えない理由を記載しておらず失礼いたしました。 加工したいのではなく、空の配列に繰り返しで作られた複数の値を入れる方法を知りたいです
otn

2023/06/07 12:15 編集

> 繰り返しで作られた複数の値を入れる方法 元データが sample = ["abc","def","hij"] のような「変数に入った配列」ではないと言うことですかね? 何故、聞きたいことを聞かずに、聞きたいことと違うことを聞くのか、理解に苦しみます。 今後は、聞きたいことをそのまま聞くようにしましょう。今回からでも遅くないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問