nac*_*ido 1 element list elixir
我有一个清单清单
>> list = [[1,""],[2,"b"],[3,""],[4,"c"]]
Run Code Online (Sandbox Code Playgroud)
我想删除包含“”元素的列表
>>list = [[2,"b"],[4,"c"]]
Run Code Online (Sandbox Code Playgroud)
我正在尝试寻找类似的东西
list = List.delete(list,[any,""])
Run Code Online (Sandbox Code Playgroud)
您可以合并Enum.reject/2并Enum.member?/2拒绝任何包含空字符串的列表
iex> Enum.reject([[1,""],[2,"b"],[3,""],[4,"c"]], &Enum.member?(&1, ""))
[[2, "b"], [4, "c"]]
Run Code Online (Sandbox Code Playgroud)
如果您的内部列表始终是相同的双项样式,并且您只想检查第二项,则还可以使用匿名函数
iex> Enum.reject([[1,""],[2,"b"],[3,""],[4,"c"]], fn [_, b] -> b == "" end)
[[2, "b"], [4, "c"]]
Run Code Online (Sandbox Code Playgroud)
或者做几乎同样事情的理解
iex> for [a, b] when b != "" <- [[1,""],[2,"b"],[3,""],[4,"c"]], do: [a, b]
[[2, "b"], [4, "c"]]
Run Code Online (Sandbox Code Playgroud)