clojure通过关键字按字母顺序对地图值进行排序

时间:2018-11-22 21:05:44

标签: sorting clojure functional-programming

我如何排序

{
 {:name "d" :id 2}
 {:name "f" :id 3}
 {:name "a" :id 1}
 {:name "z" :id 9}
}

按名称顺序?像这样:

{
 {:name "a" :id 1}
 {:name "d" :id 2}
 {:name "f" :id 3}
 {:name "z" :id 9}
}

1 个答案:

答案 0 :(得分:2)

如有疑问,请务必查看the Clojure CheatSheet

在这种情况下,只需使用sort-by

(def data
  [{:name "d" :id 2}
   {:name "f" :id 3}
   {:name "a" :id 1}
   {:name "z" :id 9}])

(sort-by :name data) => 
  ({:name "a", :id 1}
   {:name "d", :id 2}
   {:name "f", :id 3}
   {:name "z", :id 9})

请注意,我必须修复您的数据才能使用方括号[...]