(clojure.walk/prewalk #(if (map? %)
(select-keys % [:c])
%)
{:a 1 :b [{:c 3} {:d 4}] :c 5})
=>{:c 5}
为什么这只会找到{:c 5}
而不是{:c 3}
?
我正在尝试编写一些内容,它将为我指定的密钥提取任何形式和任何级别的所有键/值对。
答案 0 :(得分:0)
使用
调用函数时{:c 5, :b [{:c 3} {:d 4}], :a 1}
...它返回:
{:c 5}
...因此丢弃所有其他密钥,包括:b
分支,因此不会遍历。