Elixir Enum.max返回最后一个而不是第一个元素

西条

如果认为多个元素最大,则返回找到的第一个元素。https://hexdocs.pm/elixir/Enum.html#max/2

iex> [4, 0, 4] |> Enum.with_index |> Enum.max
{4, 2}

我原以为这会返回{4, 0},显然我缺少了什么?

感谢您为消除我的困惑提供的帮助:)

多伯特

这是因为after之后|> Enum.with_index,您的列表大于[{4, 0}, {0, 1}, {4, 2}]并且{4, 2}大于{4, 0}比较元组时的列表,当第一个元素相等时,将比较第二个(然后是第三个,依此类推)元素。

测试您要测试的内容的正确方法是改为使用Enum.max_by/2

iex(1)> [4, 0, 4] |> Enum.with_index |> Enum.max_by(fn {x, i} -> x end)
{4, 0}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Enum.map以与Elixir中的其他元素稍有不同的方式修改集合的第一个元素?

Enum DropDownList 总是返回列表中的第一个值

Java获取下一个Enum值或从第一个开始

elixir 中字符串的第一个和最后一个字符之间的删失字符

删除 Elixir 中列表元素的所有条目(不仅仅是第一个)

在Enum中不是一个常数

Elixir只大写单词的第一个字母

为什么 Elixir 的 Enum.count 不返回数字?

在迭代器中找到第一个特定的enum变体并对其进行转换

mapstruct 1.3 无法获取 Enum 作为第一个方法参数

JSON响应中第一个Enum值未正确映射

获取F#中Enum类型的第一个值

“ NS_ENUM”的第一个值实际上是什么类型?

Elixir理解返回一个星形字符“ *”

解决Elixir中的“字符串中的第一个唯一字符”

Elixir MapSet与Enum.member?

Elixir-如何获取除列表中的最后一个元素以外的所有元素?

$ elemMatch匹配最后一个元素而不是第一个

Elixir:一个接一个地运行一个函数

创建一个抽象的Enum类

ClassLoad一个Enum类型

如何从值字典构造一个enum.Enum?

Elixir:如何在块中编写 Enum.map 而不是匿名函数?

为什么VecDeque的尾部成员指向第一个元素而不是最后一个元素?

比较两个地图列表并返回一个新的转换列表(Elixir)

Java 返回我选择的最长单词,但返回列表中的第一个单词而不是最后一个

Postgres返回数组的最后一项,而不是第一个

在Enum中搜索一个字符串并返回Enum

Elixir - 从 Enum.each() 获取地图