Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。
Q&A
解決済
6回答
2021閲覧
総合スコア103
0グッド
0クリップ
投稿2016/06/12 14:11
0
ary1 = [1,2,3] ary2 = [4,5,6] ary3 = [7,8,9]
上記3つの配列のそれぞれの要素を添字[0]から順に出力していくにはどのような処理を書いたら良いでしょうか?
期待する出力結果としては、
1 4 7 2 5 8 3 6 9
と、いうものとなります。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答6件
ベストアンサー
ruby1puts [ary1, ary2, ary3].transpose
ruby
1puts [ary1, ary2, ary3].transpose
投稿2016/06/12 15:30
総合スコア29
回答へのコメント
2016/06/12 15:33
Ruby1[ary1, ary2, ary3].transpose.flatten.each do |n| 2 puts n 3end
Ruby
1[ary1, ary2, ary3].transpose.flatten.each do |n| 2 puts n 3end
投稿2016/06/12 14:19
総合スコア86455
puts ary1.zip(ary2).zip(ary3) puts [ary2, ary3].inject(ary1) {|a, e| a = a.zip(e)} puts [ary1, ary2, ary3].inject([]) {|a, e| a = (a.empty?)? e : a.zip(e)}
2行目と3行目は、 1行目の解を配列の数が4、5, ... など増えていったときにも対応できるようにしたものです。
投稿2016/06/12 15:51
総合スコア22328
Array#flatten無しでいけるみたいです
Array#flatten
rb1[ary1, ary2, ary3].transpose.each(&method(:puts))
rb
1[ary1, ary2, ary3].transpose.each(&method(:puts))
rb1ary1.zip(ary2, ary3).each(&method(:puts))
1ary1.zip(ary2, ary3).each(&method(:puts))
投稿2016/06/12 15:27
総合スコア5223
Ruby1ary1.zip(ary2, ary3).flatten.each{|i|puts i}
1ary1.zip(ary2, ary3).flatten.each{|i|puts i}
投稿2016/06/12 14:16
総合スコア21816
Ruby 分からないので、 考え方だけ書いてみます。 ary1 = [1,2,3] ary2 = [4,5,6] ary3 = [7,8,9]
1 . ary1 ary2 ary3 を 更に配列に格納します。( arraylistみたいなやつ ) 2 . arraylistをループで回す 3 . 1回目のループでary1 を取得 同時に添字0 で1を取得 4 . 2回目のループでary2 を取得 同時に添字0 で4を取得 ・ ・ これを縦3つの配列 × 横3つの値 分 繰り返す と上記の結果になると思います。 もっといいやり方があるかもしれませんね。
投稿2016/06/13 07:52
総合スコア236
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
複数の配列それぞれから順に出力したい
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/12 15:33