【发布时间】:2020-05-28 19:30:53
【问题描述】:
假设我有一个哈希图,我想通过给定向量中提供的键过滤掉条目。例如假设我有 1. 地图:{:k1 "v1" :k2 "v2" :k3 "v3"} 2. 列表:[:k2 :k4]
我想留下k1,k3
我目前的解决方案是:
(defn rr
"remove key that are in set from the map"
[m1 s]
(loop [mm m1 ss s]
(if (first ss)
(recur (dissoc mm (first ss)) (rest ss))
mm)))
想知道你有更漂亮的解决方案吗?
【问题讨论】:
-
(apply dissoc {:k1 "v1" :k2 "v2" :k3 "v3"} [:k2 :k4]),因为dissoc可以带多个key来移除,所以可以用apply对key集合进行操作,否则你可以使用reduce同样的方式:(reduce dissoc {:k1 "v1" :k2 "v2" :k3 "v3"} [:k2 :k4]) -
如果您的评论是一个答案,@leetwinski。它可以被选为正确答案。 :-)
-
@leetwinski 你能写下你的评论作为答案吗?
标签: clojure