作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在创建一个简单的分析图表,为了避免实时进行繁重的查询,我需要将缓存的结果数据集保存在一个专门用于这些统计信息的表中。
任何用户尝试一些类(class),我想使用状态保存类(class)的 ID。所以像
{ "invited": [1,3,6], "done": [2,9] }
我写这个函数
u.courses.map { |w| [w.status, []<<w.id] }.to_h
当然,每次迭代我的数组都会被初始化,所以我有
{"invited"=>[5101]}
如果我尝试
u.courses.map { |w| [w.status, []<<w.id] }
我得到
[["invited", [1]], ["invited", [748]], ["invited", [1445]], ["invited", [2113]], ["invited", [2833]], ["invited", [6017]], ["invited", [4146]], ["invited", [5101]]]
如何在第一次迭代时创建数组并将其保留在我的 map 中?
最佳答案
你可以试试each_with_object
:
u.courses.each_with_object({}){|w, o| (o[w.status] ||= []) << w.id}
u.courses.reduce({}){|o, w| (o[w.status] ||= []) << w.id}
关于arrays - Ruby:将数组映射到散列,在散列内创建一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38384083/
我是一名优秀的程序员,十分优秀!