简体   繁体   English

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

[英]clojure sorting map values alphabetically by a keyword

How would I sort 我该如何排序

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

Alphabetically by name? 按字母顺序? Like this: 像这样:

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

When in doubt, be sure to look at the Clojure CheatSheet . 如有疑问,请务必查看Clojure CheatSheet

In this case just use sort-by 在这种情况下,只需使用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})

Note that I had to fix your data to use square brackets [...] 请注意,我必须修复您的数据才能使用方括号[...]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM