我有一个带有键值对的Map和一个带有原子的元组.我想删除地图中的任何条目,其中键不是元组中的原子
m = %{value1: nil, value2: nil, value4: nil}
t = {:value1, :value3, :value4}
# The result should be %{value1: nil, value4: nil}
Run Code Online (Sandbox Code Playgroud)
这是一种交叉问题.我调查了一下Enum.filter
,MapSet
但没有找到一个优雅的解决方案.这必须是一个常见问题,您的意见得到高度赞赏.
Dog*_*ert 16
iex(1)> m = %{value1: nil, value2: nil, value4: nil}
%{value1: nil, value2: nil, value4: nil}
iex(2)> t = {:value1, :value3, :value4}
{:value1, :value3, :value4}
iex(3)> Map.take(m, Tuple.to_list(t))
%{value1: nil, value4: nil}
Run Code Online (Sandbox Code Playgroud)