基于特定键中的值在集合中复制映射

leo*_*bot 1 clojure

所以我有这个:

[{:a ["x" "y"], :b "foo"}
 {:a ["x" "y" "z"], :b "bar"}]
Run Code Online (Sandbox Code Playgroud)

想要这个:

[{:a "x", :b "foo"} 
 {:a "y", :b "foo"} 
 {:a "x", :b "bar"}
 {:a "y", :b "bar"}
 {:a "z", :b "bar"}]
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

cfr*_*ick 5

for 对于已知的嵌套级别非常好:

(for [x [{:a ["x" "y"], :b "foo"}
         {:a ["x" "y" "z"], :b "bar"}]
      a (:a x)] 
  (assoc x :a a))
Run Code Online (Sandbox Code Playgroud)