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