簡體   English   中英

Clojure:添加到地圖

[英]Clojure: adding to a map

如果我有一張地圖矢量

(def v [{:key1 "value 1" :key2 "value2"} {:key1 "value 3" :key2 "value4"}])

和一張地圖

(def m {:key3 "value2" :key4 "value5"})

如何將map m添加到向量v中的所有映射,其中2個給定鍵(在本例中為key2和key3)的值相等?

預期的結果是:

[{:key1 "value 1" :key2 "value2" :key3 "value2" :key4 "value5"} {:key1 "value 3" :key2 "value4"}]

如果key2和k3相等,您希望將每個映射與m3合並:

(map (fn [x] (if (= (:key2 x) (:key3 m)) (merge m x) x)) v)

=>

({:key3 "value2", :key2 "value2", :key4 "value5", :key1 "value 1"} {:key2 "value4", :key1 "value 3"})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM