如何使用选定的键将一系列地图转换为一系列地图?

dan*_*dan 2 clojure

我有一系列这样的地图

({:a 1 :b 2 : c 4} {:a 3 :b 3 :d 4})
Run Code Online (Sandbox Code Playgroud)

我想把它变成一个更紧凑的地图序列,它只有:a和:b键,如下所示:

({:a 1 :b 2} {:a 3 :b 3})
Run Code Online (Sandbox Code Playgroud)

最简洁的方法是什么?

Leo*_*nel 9

内置函数select-keys是您正在寻找的.

(let [in [{:a 1 :b 2 :c 4} {:a 3 :b 3 :d 4}]]
  (map #(select-keys % [:a :b])
       in))
Run Code Online (Sandbox Code Playgroud)