[Ruby]ハッシュ(Hash)の合計値を取得するには?

Ruby

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

ハッシュ(Hash)の合計値を取得する方法を紹介します。

スポンサーリンク

方法

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

ハッシュ(Hash)の合計値を取得する方法は、3つあります。

sumメソッド

ひとつめは、sumメソッドを使う方法です。

まず、ハッシュからvaluesメソッドを呼び出します。

そして、valuesメソッドからsumメソッドを呼び出します。

#hash=対象のハッシュ
result = hash.values.sum

上記のsumメソッドは、呼び出したハッシュ(Hash)の合計値を取得します。

使用例

numbers = { 
    "one" => 1, 
    "two" => 2,
    "three" => 3,
    "four" => 4,
    "five" => 5,
}

result = numbers.values.sum

puts result
出力:
15

injectメソッド

ふたつめは、injectメソッドを使う方法です。

まず、ハッシュからvaluesメソッドを呼び出します。

valuesメソッドからinjectメソッドを呼び出します。

そして、injectメソッドの引数に「:+」を指定します。

#hash=対象のハッシュ
result = hash.values.inject(:+)

上記のinjectメソッドは、呼び出したハッシュ(Hash)の合計値を取得します。

使用例

numbers = { 
    "one" => 1, 
    "two" => 2,
    "three" => 3,
    "four" => 4,
    "five" => 5,
}

result = numbers.values.inject(:+)

puts result
出力:
15

ループ

みっつめは、ループを使う方法です。

まず、変数を用意します。

result = 0

次に、ハッシュをループします。

ループ処理で、ハッシュの値を変数に足します。

#hash=対象のハッシュ
hash.each { |k, v| result += v }
for k, v in hash
    result += v
end

上記のループは、呼び出したハッシュ(Hash)の合計値を用意した変数に格納します。

使用例1

numbers = { 
    "one" => 1, 
    "two" => 2,
    "three" => 3,
    "four" => 4,
    "five" => 5,
}

result = 0
numbers.each { |k, v| result += v }

puts result
出力:
15

使用例2

numbers = { 
    "one" => 1, 
    "two" => 2,
    "three" => 3,
    "four" => 4,
    "five" => 5,
}

result = 0
for k, v in numbers
    result += v
end

puts result
出力:
15

まとめ

ハッシュ(Hash)の合計値を取得する方法は、次の3つです。

  • sumメソッドを使う方法
    result = hash.values.sum
  • injectメソッドを使う方法
    result = hash.values.inject(:+)
  • ループを使う方法
    result = 0
    hash.each { |k, v| result += v }

コメント

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