更新clojure中地图矢量中的值

时间:2016-04-03 00:19:07

标签: dictionary clojure update-in

我有一个带相同键的地图矢量:

(def items [{:id 1 :name "first item"}
            {:id 2 :name "second item"}])

我可以在向量的第一个地图中用大写:name键的值:

(update-in items [0 :name] clojure.string/upper-case)
=> [{:id 1, :name "FIRST ITEM"} {:id 2, :name "second item"}]

如何在每张地图中大写每个:name键?我期待这个:

[{:id 1, :name "FIRST ITEM"} {:id 2, :name "SECOND ITEM"}]

1 个答案:

答案 0 :(得分:2)

这应该这样做:

(map #(update-in % [:name] clojure.string/upper-case) items)

%符号代表函数表达式items中的每个地图。