我有一个带有地图的矢量(每个都有一个id),我想只选择id列表中不是的地图。最常用的方法是什么?
(def input [{:id 1 :asd 8} {:id 2 :asd 4} {:id 3 :asd 7} {:id 4 :asd 4}])
(def connected-ids '(1 3))
;; this is what I want to get:
(def not-connected [{:id 2 :asd 8} {:id 4 :asd 4})
返回的集合不一定是矢量。
答案 0 :(得分:4)
我的建议是
(def connected-ids #{1 3})
nil
。在渐近时间方面,它比扫描列表以检查值是否在其中更便宜。remove
删除我们不想要的项目:
(def not-connected (remove (comp connected-ids :id) input))