elixir - 根据值在两个地图之间进行选择
问题描述
我有这个数据集:
%{
"away" => %{
"id" => "575ec304-wlk3-239n-3032jdns3944",
"points" => 115
},
"home" => %{
"id" => "583ec7cd-fb46-11e1-82cb-f4ce4684ea4c",
"points" => 120
}
}
我想返回点数最多的地图,这样我就得到了这个。
%{
"home" => %{
"id" => "583ec7cd-fb46-11e1-82cb-f4ce4684ea4c",
"points" => 120
}
}
我在想这enum.find
会起作用,但我没有任何运气。任何帮助都会很棒。
解决方案
您想要使用Enum.max_by/4
它是因为您不需要正在搜索的项目的特定属性,而是希望项目本身具有最多的点。
iex> data = %{
"away" => %{
"id" => "575ec304-wlk3-239n-3032jdns3944",
"points" => 115
},
"home" => %{
"id" => "583ec7cd-fb46-11e1-82cb-f4ce4684ea4c",
"points" => 120
}
}
iex> Enum.max_by(data, fn {_, value} -> value["points"] end)
{"home", %{"id" => "583ec7cd-fb46-11e1-82cb-f4ce4684ea4c", "points" => 120}}
推荐阅读
- python - 如何在 Python Turtle 图形中杀死计时器
- kubernetes - 为什么我不能在 kubernetes 运算符中更改 cr 的值
- azure - 为什么我的 Azure Function 配置中同时需要 APPINSIGHTS_INSTRUMENTATIONKEY 和 APPLICATIONINSIGHTS_CONNECTION_STRING?
- laravel-nova - Laravel Nova 更改字体系列
- selenium - Selenium - xpath 未拾取元素
- java - 在 Java JDBC 中使用 mysql 连接器创建可运行的 jar 文件 Intellij
- python - 评估 numpy 多项式返回错误的值
- c - 我可以在信号函数处理程序中等待子进程吗?
- python - 在 python shell 中导入 pybrain 时出错
- c# - 如何在方法中返回 T 类型或 null?