从基于内容的序列中检索地图 - Clojure

时间:2013-08-20 16:47:23

标签: clojure

我有一个格式为

的数据集
{:application "name1", :date "date1", :description "desc1"}
{:application "name1", :date "date2", :description "desc2"}
{:application "name2", :date "date1", :description "desc1"}
{:application "name2", :date "date2", :description "desc2"}
etc ...)

我的目标是创建一个包含单个应用程序地图的序列,如下所示。

{:application "name1", :date "date1", :description "desc1"}
{:application "name1", :date "date2", :description "desc2"}

我已经尝试了很多不同的方法来做到这一点,但似乎无法让任何工作。我目前关于如何做到的想法是:

(let[
 a (for [x data] (if (= (get x :application) "name1") x))
])

我知道可能有一个简单的解决方案,但我是Clojure的新手,我无法理解。

提前致谢。

大卫

1 个答案:

答案 0 :(得分:4)

如果你只想要name1

(filter (comp #{"name1"} :application) data)

按名称排序

(group-by :application data)