array = ["1", "2", "3", "4", "5"]
のように配列の中に文字列で数字の値がある時に、配列の文字列を数値に変更する方法を書きます。
for文の方法
array = ["1", "2", "3", "4", "5"]
intArray = []
for n in array
intArray.push(n.to_i)
end
# intArray => [1, 2, 3, 4, 5]
arrayとは別の配列intArray = []を作成します。
arrayの値をnで取得して、to_iで文字列を数値に変更、pushでintArrayに値を代入していくという処理を繰り返します。
mapメソッドの方法
array = ["1", "2", "3", "4", "5"]
intArray = array.map{ |n| n.to_i }
# intArray => [1, 2, 3, 4, 5]
または
array = ["1", "2", "3", "4", "5"]
intArray = array.map(&:to_i)
# intArray => [1, 2, 3, 4, 5]
mapメソッドで配列arrayを繰り返し処理して値をnという変数に代入して、実行したい処理としてn.to_iまたは&:to_iという処理を実行しています。
実行した処理をintArrayに代入していきます。
こちらの場合は予めintArray = []のように定義しておく必要はありません。
map!を使用する方法もあり、こちらの場合は
array = ["1", "2", "3", "4", "5"]
array.map!{ |n| n.to_i }
# array => [1, 2, 3, 4, 5]
のようにarrayの配列を書き換えることができます。
参考サイト
https://techacademy.jp/magazine/19868
https://uxmilk.jp/21695