无法基于嵌套字段对clojure中的MAP进行排序

Avi*_*Avi 2 clojure

我试图在"col_nm"字段的基础上对下面的地图(Clojure)进行排序,但无法这样做.

{:Mawb {:user_val "3", :col_nm "1"}, 
 :HawbDate {:user_val "", :col_nm "3"}, 
 :EtlBatchID {:user_val "1", :col_nm "2"}}
Run Code Online (Sandbox Code Playgroud)

输出应该是:

{:Mawb {:user_val "3", :col_nm "1"}, 
 :EtlBatchID {:user_val "1", :col_nm "2"}, 
 :HawbDate {:user_val "", :col_nm "3"} }
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我,提前谢谢.

mob*_*yte 5

试试这个:

(def m {:Mawb {:user_val "3", :col_nm "1"},
        :HawbDate {:user_val "", :col_nm "3"},
        :EtlBatchID {:user_val "1", :col_nm "2"}})

(sort-by (comp :col_nm second) m)
=> ([:Mawb {:user_val "3", :col_nm "1"}]
    [:EtlBatchID {:user_val "1", :col_nm "2"}]
    [:HawbDate {:user_val "", :col_nm "3"}])
Run Code Online (Sandbox Code Playgroud)

  • 小修正:`(排序(comp:col_nm秒)m)` (2认同)