Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。
Q&A
解決済
4回答
2799閲覧
総合スコア36
1グッド
1クリップ
投稿2018/09/24 11:02
1
自分が書いたコードは以下なのですが、もっとスマートな書き方があったら教えてください。
Ruby1array = [1, 2, 3, 4, 5] 20.step(array.length - 1, 2) { |i| puts array[i] }
Ruby
1array = [1, 2, 3, 4, 5] 20.step(array.length - 1, 2) { |i| puts array[i] }
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答4件
0
ベストアンサー
こんなやり方はどうでしょうか。配列を2個組に組み替えて、それから先頭を抽出しています。
ruby1array = [1, 2, 3, 4, 5] 2p array.each_slice(2).map(&:first) # => [1, 3, 5]
ruby
1array = [1, 2, 3, 4, 5] 2p array.each_slice(2).map(&:first) # => [1, 3, 5]
投稿2018/09/24 11:20
総合スコア146842
回答へのコメント
2018/09/24 11:23
each_slice を使う方法があります。
rb1array = [1, 2, 3, 4, 5] 2 3puts array.each_slice(2).map(&:first).join("\n") 4 5array.each_slice(2){|a,*_| puts a}
rb
1array = [1, 2, 3, 4, 5] 2 3puts array.each_slice(2).map(&:first).join("\n") 4 5array.each_slice(2){|a,*_| puts a}
投稿2018/09/24 11:18
総合スコア15149
2018/09/24 11:24
つarray.select.each_with_index{|_,i|i%2==0}
投稿2018/09/24 11:17
総合スコア5739
2018/09/24 11:25
偶数番目の要素を抜き出すのではなく、 偶数を抽出して、それを index にして配列を参照するという方針で考えてみました。 (質問文にあるコードの方針と同じ)
ruby1(0..array.size).step(2) {|i| puts array[i]} 2 3(0..array.size).select(&:even?).each{|i| puts array[i]} 4(0..array.size).each{|i| puts array[i] if i.even?} 5 6array.size.times.select(&:even?).each{|i| puts array[i]} 7array.size.times.each{|i| puts array[i] if i.even?}
1(0..array.size).step(2) {|i| puts array[i]} 2 3(0..array.size).select(&:even?).each{|i| puts array[i]} 4(0..array.size).each{|i| puts array[i] if i.even?} 5 6array.size.times.select(&:even?).each{|i| puts array[i]} 7array.size.times.each{|i| puts array[i] if i.even?}
投稿2018/09/24 12:44
総合スコア22328
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
配列を1つ飛ばしずつで参照したい
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/24 11:23