我想返回地图中出现的所有关键字。例如:
{:a 1 :d 4 :e 4}
我想得到(:a:d:e)。我的代码是
(get {:a 1 :d 4 :e 4} :keywords)
它返回零。那么如何解决呢?
答案 0 :(得分:9)
我想你想从你的地图中获取所有keys
。您可以使用以下方式执行此操作:
(keys {:a 1, :d 4, :e 4}
;; => (:a :d :e)
如果您希望获得所有关键字,当它们在地图中显示为关键字时,您需要filter
仅匹配keyword?
谓词:
(filter keyword? (keys {:a 1, 'd 4, :e 4, "f" 5}))
;; => (:a :e)
对于来自地图值的关键字类似:
(filter keyword? (vals {:a :b, "c" :d, 4 "e", 5 'f}))
;; => (:b :d)