我刚开始学习Clojure,我想从地图矢量中获取两个关键字.
让我们说有一个向量
(def a [{:id 1, :description "bla", :amount 12, :type "A", :other "x"} {:id 2, :description "blabla", :amount 10, :type "B", :other "y"}])
Run Code Online (Sandbox Code Playgroud)
而且我想得到一个新的载体
[{"bla" 12} {"blabla" 10}]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点??谢谢!
假设你想要:description和:amount单独的,而不是映射一个到另一个的地图,你可以用来juxt同时检索两个:
(mapv (juxt :description :amount) a)
;; => [["bla" 12] ["blabla" 10]]
Run Code Online (Sandbox Code Playgroud)
如果你真的想制作地图,你可以使用例如apply并hash-map做到这一点:
(mapv #(apply hash-map ((juxt :description :amount) %)) a)
;; => [{"bla" 12} {"blabla" 10}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |