2

我有一个格式的数据集

{: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 的新手,我就是想不通。

提前致谢。

大卫

4

1 回答 1

4

如果你只想要 name1

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

按名称排序

(group-by :application data)

于 2013-08-20T16:53:58.167 回答