Ruby

Rubyでhashや配列をeach_with_indexで最初と最後の処理だけ特別な処理をする

Rubyプログラミング言語で、hashや配列をeach_with_indexを使い、最初と最後の処理だけ特別な処理をする方法について紹介します。例:ハッシュからJSONフォーマットを作りたい。<code>}</code>直前の<code>,</code>を消したい。

Shou Arisaka
1 分で読める
2018年9月23日

Rubyプログラミング言語で、hashや配列をeach_with_indexを使い、最初と最後の処理だけ特別な処理をする方法について紹介します。

例:ハッシュからJSONフォーマットを作りたい。}直前の,を消したい。

h = {:a => "hoge", :b => "fuga", :c => "foo"}

@json = '{'
h.each_with_index do |(k, v), i|
  if i == 0
    # 最初の要素の処理
  end
  if i == h.size - 1
    # 最後の要素の処理
    @json << %("#{k}":"#{v}")
  else
    @json << %("#{k}":"#{v}",)
  end
end
@json << '}'

puts @json #=> {"a":"hoge","b":"fuga","c":"foo"}

この方法は、配列でも使える。 配列の場合は、

|(k, v), i|部分を|e, i|のようにする。

この記事をシェア

Shou Arisaka 2018年9月23日

🔗 リンクをコピー