どうも、ちょげ(@chogetarou)です。
配列(array)の合計値を取得する方法を紹介します。
方法
配列(array)の合計値を取得する方法は、3つあります。
sumメソッド
ひとつめは、sumメソッドを使う方法です。
具体的な方法としては、「arr.sum
」のように、ドットで配列からsumメソッドを呼び出します。
#arr=対象の配列
sum_value = arr.sum
上記のsumメソッドは、呼び出した配列(array)の合計値を取得します。
もし、合計値の要素を加工したい場合は、加工後の要素を返すブロックを渡します。
#比較対象を返すブロック, ブロックの引数で配列の要素を取得
min_value = arr.min { |item| item }
使用例1
numbers = [1, 2, 3, 4, 5]
sum_value = numbers.sum
puts sum_value
出力:
15
使用例2
numbers = ["1", "2", "3", "4", "5"]
sum_value = numbers.sum { |number| number.to_i }
puts sum_value
injectメソッド
ふたつめは、injectメソッドを使う方法です。
まず、配列からinjectメソッドを呼び出します。
そして、injectメソッドの引数に「:+」を指定します。
#arr=対象の配列
sum_value = arr.inject(:+)
上記のinjectメソッドは、呼び出した配列(array)の合計値を取得します。
使用例
numbers = [1, 2, 3, 4, 5]
sum_value = numbers.inject(:+)
puts sum_value
出力:
15
ループ
みっつめは、ループを使う方法です。
まず、配列の合計値を格納するための変数を用意します。
sum_value = 0
そして、配列をforもしくはeachでループします。
ループ処理で、配列の要素を変数に足します。
#arr=対象の配列
for i in arr
sum_value += i
end
arr.each do |i|
sum_value += i
end
上記のforとeachのループは、ループした配列(array)の合計値を用意した変数に格納します。
使用例1
numbers = [1, 2, 3, 4, 5]
sum_value = 0
for number in numbers
sum_value += number
end
puts sum_value
出力:
15
使用例2
numbers = [1, 2, 3, 4, 5]
sum_value = 0
numbers.each do |number|
sum_value += number
end
puts sum_value
まとめ
配列(array)の合計値を取得する方法は、次の3つです。
- sumメソッドを使う方法
sum_value = arr.sum
- injectメソッドを使う方法
sum_value = arr.inject(:+)
- ループを使う方法
コメント