如何搜索和解除多个后代密钥。
例:
(def d {:foo 123
:bar {
:baz 456
:bam {
:whiz 789}}})
(dissoc-descendents d [:foo :bam])
;->> {:bar {:baz 456}}
最佳答案
clojure.walk在这种情况下很有用:
(use 'clojure.walk)
(postwalk #(if (map? %) (dissoc % :foo :bam) %) d)