在Elixir中,我有一个嵌套映射列表,每个映射都有相同的基本结构 - 例如:
nested_map_list = [
%{foo: %{test: "Hi"}},
%{bar: %{test: "Hello"}},
%{baz: %{test: "Hey"}}
]
Run Code Online (Sandbox Code Playgroud)
因此,它们在上层各有一个不同的键,但在嵌套映射中有相同的键.有没有办法可以迭代这个列表,以便每次迭代访问嵌套映射,而不管上层的键?
为了说明我的意思,请考虑这个伪代码:
Enum.each(nested_map_list, fn(%{_key: nested_data}) -> IO.puts nested_data.test end)
> "Hi"
> "Hello"
> "Hey"
Run Code Online (Sandbox Code Playgroud)
非常感谢!
虽然其他答案都是正确的,但我for在这里使用和模式匹配如下:
iex(1)> nested_map_list = [
...(1)> %{foo: %{test: "Hi"}},
...(1)> %{bar: %{test: "Hello"}},
...(1)> %{baz: %{test: "Hey"}}
...(1)> ]
iex(2)> for x <- nested_map_list, {_, %{test: test}} <- x, do: IO.puts(test)
Hi
Hello
Hey
Run Code Online (Sandbox Code Playgroud)