Elixir在地图中获取非空的值

Sam*_*hih 2 enums dictionary elixir

给出这样的地图:

mapOne = %{"dog" => "foo", "cat" => "", "name" => "generic","fizz" => "", }

你怎么会得到列表中空的值的键? ["cat", "fizz"]

它似乎Enum.filter返回了一个键值对的列表,而不仅仅是列表

mapOne |> Enum.filter(fn {k,v} -> if v == "" do k end end) [{"cat", ""}, {"fizz", ""}]

谢谢!

Mik*_*hot 6

理解适用于这种情况:

iex(1)> mapOne = %{"dog" => "foo", "cat" => "", "name" => "generic","fizz" => "", }

iex(2)> for {k, v} <- mapOne, v == "", do: k

["cat", "fizz"]
Run Code Online (Sandbox Code Playgroud)