【发布时间】:2021-03-05 17:01:47
【问题描述】:
我得到了以下结构:
[nil,
%{attributes: %{updated_at: ~N[2017-09-21 08:34:11.899360]},
...]
我想删除 nils。我怎么做?试过Enum.reduce/3,但没用。
【问题讨论】:
我得到了以下结构:
[nil,
%{attributes: %{updated_at: ~N[2017-09-21 08:34:11.899360]},
...]
我想删除 nils。我怎么做?试过Enum.reduce/3,但没用。
【问题讨论】:
Enum.filter/2 来救援:
Enum.filter(list, & !is_nil(&1))
如果您确定列表中不可能有 false 原子(Elixir 中其他可能的错误值),则过滤器可能会简化为:
Enum.filter(list, & &1)
另外(感谢@Dogbert)还有一个对应的函数Enum.reject/2“返回enumerable的元素,函数fun返回false或nil。”
Enum.reject(list, &is_nil/1)
【讨论】:
Enum.reject(list, &is_nil/1).
Enum.reject(list, &is_nil/1) 特别优雅——很好的解决方案
这对我有用:
Enum.filter(s, fn x -> if(x != "") do x end end)
【讨论】:
Enum.filter(list, fn x -> x != "" end)
【讨论】: