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。