无法根据嵌套字段对clojure中的MAP进行排序 [英] Unable to sort a MAP in clojure on the basis of nested fields
本文介绍了无法根据嵌套字段对clojure中的MAP进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图在col_nm字段的基础上对下面的地图(Clojure)排序,但无法这样做。
{:Mawb {:user_val3,:col_nm1},
:HawbDate {:user_val ,:col_nm3},
:EtlBatchID {:user_val1,:col_nm2}}
输出应为:
{:Mawb {:user_val3,:col_nm 1},
:EtlBatchID {:user_val1,:col_nm2},
:HawbDate {:user_val,:col_nm3}}
任何人都可以帮助我,提前感谢。
解决方案尝试这个:
(def m {:Mawb {:user_val3,:col_nm 1},
:HawbDate {:user_val,:col_nm3},
:EtlBatchID {:user_val1,:col_nm2}})
(sort-by(comp:col_nm second)m)
=> ([:Mawb {:user_val3,:col_nm1}]
[:EtlBatchID {:user_val1,:col_nm2}]
[:HawbDate {:user_val ,:col_nm3}])
I am trying to sort the below map( Clojure) on the basis of "col_nm" field, but unable to do so.
{:Mawb {:user_val "3", :col_nm "1"},
:HawbDate {:user_val "", :col_nm "3"},
:EtlBatchID {:user_val "1", :col_nm "2"}}
The output should be:
{:Mawb {:user_val "3", :col_nm "1"},
:EtlBatchID {:user_val "1", :col_nm "2"},
:HawbDate {:user_val "", :col_nm "3"} }
Can anyone help me, thanks in advance.
解决方案 Try this one:
(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"}])
这篇关于无法根据嵌套字段对clojure中的MAP进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文