比较数组值和哈希键。如果匹配,则求和对应的哈希值

Bor*_* SB -2 ruby arrays hash

为了:

a = [:product_one, :product_two, :product_three]
h = { product_one: 5, product_two: 9, product_three: 4, 
      product_four: 12, product_five: 20 }
Run Code Online (Sandbox Code Playgroud)

我试图查看哈希键是否与数组值匹配(或者应该相反?我的数组值是否与我的哈希键匹配?)然后获取相应的匹配哈希值并将它们相加。

我的思维.select,如 h.select {|item| h.has_key?(item)}但我坚持用mathing和suming一部分。

Ily*_*lya 5

你可以这样写:

h.values_at(*a).sum
Run Code Online (Sandbox Code Playgroud)

或者(对于 Ruby 版本 < 2.4):

h.values_at(*a).inject(:+)
Run Code Online (Sandbox Code Playgroud)

  • @BorisSB,我写了如果你的 ruby​​ 版本 &lt; 2.4.0 你可以做什么 (2认同)