繁体   English   中英

Elixir 从列表中删除 nil

[英]Elixir remove nil from list

我得到了以下结构:

[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为其返回falsenil 。”

Enum.reject(list, &is_nil/1)

这对我有用:

Enum.filter(s, fn x -> if(x != "") do x end end)
Enum.filter(list, fn x -> x != "" end)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM