使用以下地图列表:
[%{test: %{"one" => 1, "three" => 3, "two" => 2}}, ...]
这段代码根本不能过滤任何东西吗?
Enum.filter([map], fn(number) ->
Enum.each(number.test, fn {k, v} ->
v == 4
end)
end)
如何让Enum.filter使用属于地图的属性?
答案 0 :(得分:2)
Enum.each
返回:ok
,因此您的代码将始终返回与输入相同的值。
如果您想检查地图中的任何值是否为值4,您可以使用Enum.any?/2
:
Enum.any?(number.test, fn {k, v} ->
v == 4
end)
要检查所有是否具有值4,您可以使用Enum.all?/2
:
Enum.all?(number.test, fn {k, v} ->
v == 4
end)