关于字典:更新Clojure中地图向量中的值

Update values in a vector of maps in clojure

我有一个具有相同键的地图向量:

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

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

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

如何在每个映射中将每个:name键大写? 我期望这样:

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


应该这样做:

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

%符号代表函数表达式中items中的每个映射。