【发布时间】:2017-01-23 09:59:56
【问题描述】:
我有一组哈希图(或哈希集,哈希图数组),如下所示:
(def mydata #{{:rank 2 :page 1 :group "fish"}
{:rank 1 :page 1 :group "mammal"}
{:rank 3 :page 2 :group "bird"}})
我有一个像这样的新哈希图:
{:group "mammal" :name "lion" :score 566}
我想要做的基本上是将新的 hashmap 数据合并到上面的数组中,所以它看起来像这样('group' 是连接键):
#{{:rank 2 :page 1 :group "fish"}
{:rank 1 :page 1 :group "mammal" :name "lion" :score 566}
{:rank 3 :page 2 :group "bird"}}
我的想法是首先在数组中找到索引为 1(从零开始),然后将 assoc-in 函数与给定的新哈希图一起使用,以便“组”被忽略或保持不变,“名称”和添加了“分数”。
首先,我需要找到一种方法来获取该索引,但这就是我现在遇到的问题。
有什么简单易行的方法吗?完成的数据将被转换为 json。
(我什至不确定构建这样的哈希图数组是否是在 Clojure 中制作一些 json 数据的正确方法。至少,将一组哈希图传递给 json 库现在可以生成数据数组以json格式设置,但如果我走错了路,请给一些建议。)
【问题讨论】:
-
您的数据结构只允许每组中的一只动物。是这样吗?
-
是的,就是这样。它就像 RDB 模式中的 1:1 连接键。