[英]Join clojure sets on multiple keys
有没有办法在多个键上加入Clojure集? 例如,我有set1和set2。 我想加入基于:a和:b的
(def set1 #{ {:a 1 :b 2 :c 3} {:a 3 :b 4 :c 5} }) (def set2 #{ {:a 1 :b 2 :d 4} {:a 3 :b 4 :d 6} {:a 7 :b 7} {:a 1 :b 2 :c 4}})
所需的输出是
#{{:a 1 :b 2 :c 3 :d 4} {:a 1 :b 2 :c 4} {:a 3 :b 4 :c 5 :d 6} }
一种方法是使用clojure.set / join:
(clojure.set/join set1 set2 {:a :a :b :b})
它基于在地图上加入SET1和SET2 {:a :a :b :b}
这意味着它比较的值:a
在冷杉映射到的值:a
第二地图和的值上:b
在冷杉映射到第二个地图上的:b
值
看起来很简单
cljs.user=> (clojure.set/join set1 set2)
#{{:a 1, :b 2, :c 3, :d 4}
{:a 3, :b 4, :c 5, :d 6}
{:a 1, :b 2, :c 4}}
做同样的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.