簡體   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