如何查找一组地图中的所有键?

时间:2011-04-04 11:56:57

标签: clojure

如果我有一组像这样的地图

(def a #{
          {:a 1 :b 2}
          {:a 3 :b 4}
          {:b 1 :c 2}
          {:d 1 :e 2}
          {:d 1 :y 2}
})

:我怎样才能找到所有钥匙?这样做:

(find-all-keys a)

:返回:

(:a :b :c :d :e :y)

4 个答案:

答案 0 :(得分:11)

另一种方式:

(distinct (mapcat keys a))

答案 1 :(得分:4)

几乎相同的方式:

(set (mapcat keys a))

答案 2 :(得分:0)

类似的东西:

user=> (into #{} (flatten (map keys a)))
#{:y :a :c :b :d :e}

答案 3 :(得分:0)

另一种方式:

(reduce #(into %1 (keys %2))  #{}  a)