【问题标题】:Rail map method to generate array of hash生成哈希数组的铁路地图方法
【发布时间】:2018-08-30 08:55:12
【问题描述】:

我有一个哈希数组,我正在使用 map 生成一个哈希数组。当我的数组有两个值但我想使用一个数组生成相同类型的结果时,我可以生成 has 数组。

我有一个数组:

 b =  [
    {
    id: 1,
    State: "Andhra Pradesh",
    Rural_Oct_16_Index_Final: 137.5,
    Rural_Oct_17_Index_Provisional: 143,
    Rural_Inflation_Rate_in_percentage: 4,
    Urban_Oct_16_Index_Final: 131.7,
    Urban_Oct_17_Index_Provisional: 135.6,
    Urban_Inflation_Rate_in_percentage: 3,
    Combined_Oct_16_Index_Final: 135.4,
    Combined_Oct_17_Index_Provisional: 140.3,
    Combined_Inflation_Rate_in_percentage: 3.6,
    created_at: "2018-08-30T05:01:58.000Z",
    updated_at: "2018-08-30T05:01:58.000Z"
    },
    {
    id: 2,
    State: "Bihar",
    Rural_Oct_16_Index_Final: 135.7,
    Rural_Oct_17_Index_Provisional: 138.7,
    Rural_Inflation_Rate_in_percentage: 2.2,
    Urban_Oct_16_Index_Final: 128.2,
    Urban_Oct_17_Index_Provisional: 131.4,
    Urban_Inflation_Rate_in_percentage: 2.5,
    Combined_Oct_16_Index_Final: 134.6,
    Combined_Oct_17_Index_Provisional: 137.6,
    Combined_Inflation_Rate_in_percentage: 2.2,
    created_at: "2018-08-30T05:01:58.000Z",
    updated_at: "2018-08-30T05:01:58.000Z"
    }
]

我使用这段代码:

 b.map do |el|
       { y: el['Rural_Oct_16_Index_Final'], label: el['State'] }
  end

我得到了这个结果:

 [
   {
     y: 3.6,
     label: "Andhra Pradesh"
    },
    {
   y: 2.2,
  label: "Bihar"
  }
 ]

所以我的问题是当我的数组只有一个值时:

  [
    {
    id: 1,
    State: "Andhra Pradesh",
    Rural_Oct_16_Index_Final: 137.5,
    Rural_Oct_17_Index_Provisional: 143,
    Rural_Inflation_Rate_in_percentage: 4,
    Urban_Oct_16_Index_Final: 131.7,
    Urban_Oct_17_Index_Provisional: 135.6,
    Urban_Inflation_Rate_in_percentage: 3,
    Combined_Oct_16_Index_Final: 135.4,
    Combined_Oct_17_Index_Provisional: 140.3,
    Combined_Inflation_Rate_in_percentage: 3.6,
    created_at: "2018-08-30T05:01:58.000Z",
    updated_at: "2018-08-30T05:01:58.000Z"
    }
]

使用 map 方法我想要这样的结果:

 [
   {
     y: 2.2,
     label: "Rural_Inflation_Rate_in_percentage"
    },
    {
   y: 128.2,
  label: "Urban_Oct_16_Index_Final"
  }
]

当我使用这段代码时:

     b.map do |el|
    { y: el['Rural_Inflation_Rate_in_percentage'], label: "Rural_Inflation_Rate_in_percentage" },
     { y: el['Rural_Inflation_Rate_in_percentage'], label: "Rural_Inflation_Rate_in_percentage" }
end

我在删除逗号时收到此错误我得到一个没有错误的结果。

有没有什么办法可以使用map方法来完成这项工作。

【问题讨论】:

    标签: ruby-on-rails arrays enumerator


    【解决方案1】:
    b.flat_map do |el|
      [{ y: el['Rural_Inflation_Rate_in_percentage'], label: "Rural_Inflation_Rate_in_percentage" },
         { y: el['Rural_Inflation_Rate_in_percentage'], label: "Rural_Inflation_Rate_in_percentage" }]
    end
    

    【讨论】:

      猜你喜欢
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      • 2019-04-28
      • 2013-09-24
      • 2018-05-18
      相关资源
      最近更新 更多