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