[Ruby]配列(array)の合計値を取得するには?

Ruby

どうも、ちょげ(@chogetarou)です。

配列(array)の合計値を取得する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

配列(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(:+)
  • ループを使う方法

コメント

タイトルとURLをコピーしました