【问题标题】:rails calculating percent between two hashes [closed]rails计算两个哈希之间的百分比[关闭]
【发布时间】:2021-10-28 22:34:04
【问题描述】:

我有两个哈希看起来

A = {2019.01 => 100, 2019.02 => 100, 2019.03 => 100, 2019.04 => 100} 

B = {2019.01 => 20, 2019.02 => 30, 2019.03 => 50, 2019.04 => 40} 

我需要结果

C = {2019.01 => 20%, 2019.02 => 30%, 2019.03 => 50%, 2019.04 => 40%}

【问题讨论】:

    标签: ruby-on-rails ruby loops hash


    【解决方案1】:

    将您的数据作为变量:

    a = {2019.01 => 100, 2019.02 => 100, 2019.03 => 100, 2019.04 => 100} 
    b = {2019.01 => 20, 2019.02 => 30, 2019.03 => 50, 2019.04 => 40}
    

    如果您只需要来自b 的百分比,则只需transform values

    b.transform_values{ |v| v.fdiv(100) }
    #=> {2019.01=>0.2, 2019.02=>0.3, 2019.03=>0.5, 2019.04=>0.4}
    

    如果你需要除以a的值,你可以merge

    a.merge(b) { |k, o_v, n_v| n_v.fdiv(o_v) }
    {2019.01=>0.2, 2019.02=>0.3, 2019.03=>0.5, 2019.04=>0.4}
    

    当需要字符串百分比时,可以使用字符串插值:

    n = 0.2
    "#{n*100}%"
    #=> "20.0%"
    

    注意:您使用浮点数作为哈希键,看起来像日期。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 2017-10-07
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      • 1970-01-01
      相关资源
      最近更新 更多