2
나는이일련의 맵을 선택한 키가있는 맵 시퀀스로 변환하려면 어떻게해야합니까?
({:a 1 :b 2 : c 4} {:a 3 :b 3 :d 4})
같은 맵의 순서를 가지고 그리고 난 그냥이 컴팩트지도의 순서로이 켜려고이 같은 B 키 : a와를
({:a 1 :b 2} {:a 3 :b 3})
가장 간단한 방법은 무엇입니까?
나는이일련의 맵을 선택한 키가있는 맵 시퀀스로 변환하려면 어떻게해야합니까?
({:a 1 :b 2 : c 4} {:a 3 :b 3 :d 4})
같은 맵의 순서를 가지고 그리고 난 그냥이 컴팩트지도의 순서로이 켜려고이 같은 B 키 : a와를
({:a 1 :b 2} {:a 3 :b 3})
가장 간단한 방법은 무엇입니까?
내장 함수 select-keys이 당신이 찾고있는 것입니다.
(let [in [{:a 1 :b 2 :c 4} {:a 3 :b 3 :d 4}]]
(map #(select-keys % [:a :b])
in))
더 일반적인 솔루션은 유지하려는 키를 받아지도에 FN을 반환하는 함수를 작성하는 것입니다. 그런 다음지도 시퀀스에 매핑합니다.
(defn keep-keys
[ks]
(fn [m] (select-keys m ks)))
(map (keep-keys [:a :b]) '({:a 1 :b 2 :c 4} {:a 3 :b 3 :d 4}))