[英]Clojure merge key values in hash map
So I have the below hash map of k/v: 所以我有下面的k / v哈希图:
(def data [{:ID "0000010890" :CREDIT "EM 1"}
{:ID "0000010890" :CREDIT "FLOW 1"}
{:ID "0000010890" :CREDIT "EM 1"}
{:ID "0000010890" :CREDIT "FLOW 1"}
{:ID "0000010809" :CREDIT "FLOW 1"}])
which I need to merge in to this: 我需要合并到此:
[{:ID "0000010890" :CREDIT "EM 1, FLOW 1"}
{:ID "0000010809" :CREDIT "FLOW 1"}]
Can anyone advise the best way to go about this in clojure? 谁能建议在Clojure中进行此操作的最佳方法?
My attempt: 我的尝试:
(defn- create-issue-summary-2 [data]
(->> data
(group-by :ID)
(map (fn [[k v]] (into {:ID k} (apply merge-with (map #(dissoc % :ID) v)))))))
Which results in 导致
({:ID "0000010890", :CREDIT "FLOW 1"}
{:ID "0000010809"}) {:ID“ 0000010809”})
(map (fn [[k v]]
(into {} [[:ID k]
[:CREDIT (apply str (interpose ", " (distinct (map :CREDIT v))))]]))
(group-by :ID data))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.