elixir按关键字获取列表元素

elixir按关键字获取列表元素,elixir,Elixir,我正在使用Map和List 在地图的情况下,我只希望一些元素,按关键字搜索: my_map = %{key1: "value1", key2: "value2", status: :success} Map.take(my_map, [:key1, :status]) my_list_of_maps = [%{key1: "value1", key2: "value2", status: :success}, %{key1: "value3", key2: "value4", status:

我正在使用
Map
List

在地图的情况下,我只希望一些元素,按关键字搜索:

my_map = %{key1: "value1", key2: "value2", status: :success}
Map.take(my_map, [:key1, :status])

my_list_of_maps = [%{key1: "value1", key2: "value2", status: :success}, %{key1: "value3", key2: "value4", status: :error}, %{key1: "value5", key2: "value6", status: :success}]

现在,我想对我的地图列表做同样的事情。最好的方法是什么?

如果我理解正确,您希望将每个地图放入
我的地图列表中
,只从中取出
:key1
:status
键,并用新地图构建一个新列表。如果这是正确的,那么您可以映射到我的地图列表:

Enum.map(my_list_of_maps, fn map -> Map.take(map, [:key1, :status])) end
我在示例中使用了


(小的自我挑剔:惯用的长生不老药可能会写
&Map.take(&1,[:key1,:status])
而不是在这里使用
fn
,但它是一样的)

太棒了!谢谢@whatyouhide。