尝试过滤一系列具有值列表中键值的地图。
尝试做这样的事情
=> (filter (fn [foo]
#(some(:x foo) ["0000", "2222"]))
[{ :y "y" :x "0000"} {:y "y" :z "z" :x "1111"} {:y "y" :z "z" :x "2222"}])
; I want to return this
=> [{:y "y" :z "z" :x "1111"}]
编辑:修复拼写错误
答案 0 :(得分:1)
这会产生所需的输出:
(filter #(not (#{"0000", "2222"} (:x %)))
[{:y "y" :x "0000"}
{:y "y" :z "z" :x "1111"}
{:y "y" :z "z" :x "2222"}])
=> ({:y "y", :z "z", :x "1111"})
此解决方案使用这两个字符串的 set ,并测试每个输入映射的:x
以设置成员资格。
我认为您的过滤谓词示例中存在拼写错误和其他一些问题。我在此示例中修复了"0000"
拼写错误以获得所需的输出。