arrays - 从数组的哈希中选择属性中的最大值
问题描述
我有这个哈希:
h = {
124 => ["shoes", "59.99"],
456 => ["pants", "49.50"],
352 => ["socks", "3.99"]
}
每个值都有两个元素。它们是名称(例如 、、"shoes"
)和价格(例如、和)。我需要选择价格最高的值。这将是价格的关键。如何选择价格最高的哈希?"pants"
"socks"
"59.99"
"49.50"
"3.99"
124
"59.99"
我试过这个:
h.select{ |x| x[1] }.max
#=> [456, ["pants", "49.50"]]
但这给了我最大值并返回 key 456
。
解决方案
最惯用的可能是这样的:
h.max_by { |_, v| v.last.to_f }
#=> [124, ["shoes", "59.99"]]
推荐阅读
- arrays - 使用索引寻址访问数组元素
- html - CSS white-space nowrap 扩展 flexbox 的子宽度
- sql - 用于为每个唯一 ID 选择最大日期和前 30 天之间的数据点的 Hive 查询
- c++ - 全新安装的 Windows 是否包含标准 C++ 库?
- c - 在指针的内容中分配指针
- python - Django:如何在 UserPostList 视图中添加用户图像
- javascript - 如何使用 Cypress 为 Bootstrap4 页面测试以编程方式选择的外部 URL
- postgresql - Postgres:杀死大笔交易的后果?
- node.js - 如何在 next.js API 中使用护照?
- javascript - 如何使用 if 条件进行定位