Обновить значения в векторе карт в clojure

У меня есть вектор карт с такими же ключами:

(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 ответ

Решение

Это должно сделать это:

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

Знак% стоит для каждой карты в items в выражении функции.

Другие вопросы по тегам