プログラミング

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

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|のようにする。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です