什麼是更新矢量內的地圖的clojure方式如果我有這樣的事情,假設每個地圖都有獨特的:name
clojure的方式來更新矢量內的地圖
(def some-vec
[{:name "foo"
....}
{:name "bar"
....}
{:name "baz"
....}])
我想以某種方式更新地圖,如果有:name
等於foo
。目前我使用map
,這樣
(map (fn [{:keys [name] :as value}]
(if-not (= name "foo")
value
(do-something .....))) some-vec)
但通過整個向量這將循環,即使我只更新一個項目。
因爲它是一個載體,需要循環遍吧,找你的元素,或者您可以knoy它的指數和指數接取它。你可以停止循環,當你發現你的元素,如果你知道它不會出現兩次。可能只是矢量不是你的數據類型,嘗試將其轉換爲映射和按鍵訪問。 – coredump 2014-09-04 12:06:09