脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

Rubyの配列に文字列として入っている数字をFixnumに一括置換する方法

eachで回して一つ一つto_iして上書きしてもいいですが、以下のようにすると1行で書けます

方法

配列.map(&:to_i)
  • map!で破壊的に上書き

検証

ソースコード
array = ["1", "2", "3", "0", "10\r\n", nil, "", "-5"]

array.map(&:to_i).each{|val|
  puts "#{val}: #{val.class}"
}
実行結果
1: Fixnum
2: Fixnum
3: Fixnum
0: Fixnum
10: Fixnum
0: Fixnum
0: Fixnum
-5: Fixnum