use*_*066 0 ruby hash dictionary
[{"date"=>"2020-09-15", "work_category"=>"CASE PICKS", "count"=>"21315"},
{"date"=>"2020-09-15", "work_category"=>"LOADING", "count"=>"6401"},
{"date"=>"2020-09-15", "work_category"=>"PALLET STAGING", "count"=>"6649"},
{"date"=>"2020-09-15", "work_category"=>"PUTAWAY", "count"=>"4974"},
{"date"=>"2020-09-15", "work_category"=>"RECEIVING", "count"=>"4108"},
{"date"=>"2020-09-16", "work_category"=>"CASE PICKS", "count"=>"16842"},
{"date"=>"2020-09-16", "work_category"=>"LOADING", "count"=>"4987"},
{"date"=>"2020-09-16", "work_category"=>"PALLET STAGING", "count"=>"5716"},
{"date"=>"2020-09-16", "work_category"=>"PUTAWAY", "count"=>"6292"},
{"date"=>"2020-09-16", "work_category"=>"RECEIVING", "count"=>"4894"},
{"date"=>"2020-09-17", "work_category"=>"CASE PICKS", "count"=>"24849"},
{"date"=>"2020-09-17", "work_category"=>"LOADING", "count"=>"5303"},
{"date"=>"2020-09-17", "work_category"=>"PALLET STAGING", "count"=>"5753"},
{"date"=>"2020-09-17", "work_category"=>"PUTAWAY", "count"=>"5136"},
{"date"=>"2020-09-17", "work_category"=>"RECEIVING", "count"=>"4699"},
{"date"=>"2020-09-18", "work_category"=>"CASE PICKS", "count"=>"11806"},
{"date"=>"2020-09-18", "work_category"=>"LOADING", "count"=>"5147"},
{"date"=>"2020-09-18", "work_category"=>"PALLET STAGING", "count"=>"5426"},
{"date"=>"2020-09-18", "work_category"=>"PUTAWAY", "count"=>"5110"},
{"date"=>"2020-09-18", "work_category"=>"RECEIVING", "count"=>"4534"},
{"date"=>"2020-09-19", "work_category"=>"CASE PICKS", "count"=>"8086"},
{"date"=>"2020-09-19", "work_category"=>"LOADING", "count"=>"1753"},
{"date"=>"2020-09-19", "work_category"=>"PALLET STAGING", "count"=>"2201"},
{"date"=>"2020-09-19", "work_category"=>"PUTAWAY", "count"=>"1341"},
{"date"=>"2020-09-19", "work_category"=>"RECEIVING", "count"=>"1052"},
{"date"=>"2020-09-20", "work_category"=>"CASE PICKS", "count"=>"5160"},
{"date"=>"2020-09-20", "work_category"=>"LOADING", "count"=>"2690"},
{"date"=>"2020-09-20", "work_category"=>"PALLET STAGING", "count"=>"2663"},
{"date"=>"2020-09-20", "work_category"=>"PUTAWAY", "count"=>"1554"},
{"date"=>"2020-09-20", "work_category"=>"RECEIVING", "count"=>"1536"},
{"date"=>"2020-09-21", "work_category"=>"CASE PICKS", "count"=>"2202"},
{"date"=>"2020-09-21", "work_category"=>"LOADING", "count"=>"860"},
{"date"=>"2020-09-21", "work_category"=>"PALLET STAGING", "count"=>"1004"},
{"date"=>"2020-09-21", "work_category"=>"PUTAWAY", "count"=>"1238"},
{"date"=>"2020-09-21", "work_category"=>"RECEIVING", "count"=>"954"}]
Run Code Online (Sandbox Code Playgroud)
我需要从上面的哈希中提取这个数据集/哈希/数组:
逻辑:获取一个数组,其中列出了每个 work_category 行的计数键值,这些值与列出的每个日期的“CASE PICKS”的提供的 work_category 键值相匹配(保持日期顺序最旧 - > 最新)。
期望的结果集:
[ “21315”, “16842”, “24849”, “11806”, “8086”, “5160”, “2202” ]
Run Code Online (Sandbox Code Playgroud)
看起来很基本,但我遇到了一些麻烦......对 Ruby 来说非常绿色。任何可以提供一些帮助的人 - 将不胜感激!
以下是问题中给出的数组的子数组。
arr = [
{"date"=>"2020-09-15", "work_category"=>"CASE PICKS", "count"=>"21315"},
{"date"=>"2020-09-15", "work_category"=>"LOADING", "count"=>"6401"},
{"date"=>"2020-09-15", "work_category"=>"PALLET STAGING", "count"=>"6649"},
{"date"=>"2020-09-15", "work_category"=>"PUTAWAY", "count"=>"4974"},
{"date"=>"2020-09-15", "work_category"=>"RECEIVING", "count"=>"4108"},
{"date"=>"2020-09-16", "work_category"=>"CASE PICKS", "count"=>"16842"},
{"date"=>"2020-09-16", "work_category"=>"LOADING", "count"=>"4987"},
{"date"=>"2020-09-16", "work_category"=>"PALLET STAGING", "count"=>"5716"},
{"date"=>"2020-09-16", "work_category"=>"PUTAWAY", "count"=>"6292"},
{"date"=>"2020-09-16", "work_category"=>"RECEIVING", "count"=>"4894"},
{"date"=>"2020-09-17", "work_category"=>"CASE PICKS", "count"=>"24849"},
{"date"=>"2020-09-17", "work_category"=>"LOADING", "count"=>"5303"}
]
Run Code Online (Sandbox Code Playgroud)
只需通过阵列进行一次传递。
arr.each_with_object([]) do |h,arr|
arr << h["count"] if h["work_category"] == "CASE PICKS"
end
#=> ["21315", "16842", "24849"]
Run Code Online (Sandbox Code Playgroud)