【发布时间】:2016-01-08 05:53:15
【问题描述】:
我有一个要过滤的集合。过滤器使用映射完成,其中键是集合项中的属性,值是集合项应匹配的值。示例:
(let [filters {:name "test"
:type "new"}
collection [{:name "testable" :type "old"}
{:name "shoudwork" :type "new"}
{:name "testable" :type "new"}]])
现在,我已经构建了我的过滤器函数,只接受一个属性和值。我想将其扩展为实际上能够采用过滤器hashmap。
这是我当前的过滤器的样子:
(filter #(re-find (re-pattern "test") (string/lower-case (% :name))) collection)
换句话说,我希望filter 不采用"test" 硬编码,但它应该是来自filters let 绑定的值,并且(% :name) 不被硬编码为:name,但是是来自filters的钥匙让绑定。
【问题讨论】: