Arrays 当每个键有多个值时,如何访问哈希并将其映射到最小值?
我想把身份证映射到最近一年 如果我有一个散列,其中一个键对应一个值,那么我没有问题:Arrays 当每个键有多个值时,如何访问哈希并将其映射到最小值?,arrays,ruby,dictionary,hashmap,Arrays,Ruby,Dictionary,Hashmap,我想把身份证映射到最近一年 如果我有一个散列,其中一个键对应一个值,那么我没有问题: hash = { "123456"=>[["123456", "1975"], ["123456", "2009"]], "123999"=>[["123999", "1928"], ["123999", "2012"]] } hash.map{|key, value| value.max} # => [["123456", "2009"], ["123999", "2012"
hash = {
"123456"=>[["123456", "1975"], ["123456", "2009"]],
"123999"=>[["123999", "1928"], ["123999", "2012"]]
}
hash.map{|key, value| value.max}
# => [["123456", "2009"], ["123999", "2012"]]
我也希望这样做,但“值”还有另一个元素:
现有的
new_hash = {
"123456"=>[["123456", "1975", "ST"], ["123456", "2009", "PE"]],
"123999"=>[["123999", "1928", "ST"], ["123999", "2012", "PE"]]
}
本质上,我要检索的是最近一年的条目,同时保留第三个元素,如下所示:
所需的
# => [["123456", "2009", "PE"], ["123999", "2012", "PE"]]
我该怎么做呢?试试:
new_hash={
“123456”=>[[“123456”、“1975”、“ST”]、[“123456”、“2009”、“PE”],
“123999”=>[[“123999”、“1928”、“ST”]、[“123999”、“2012”、“PE”]]
}
新的{u hash.map{{| | | | |数组| array.max_乘以{| | | |年}
#=>[[“123456”、“2009”、“PE”]、[“123999”、“2012”、“PE”]]
我找到的最接近的查询是:然而,我仍然无法应用那里记录的内容来帮助我。假设“value”是三个元素的数组,我尝试了{| key,value | value[1].max}
,但是这只是查看整数本身,无法对其应用max
。希望我所追求的想法足够清晰。如果需要更多信息,很乐意提供。只需准确地提供(问题中的)现有和所需的数据结构。编辑以进一步突出显示现有哈希和所需的输出就可以了!我曾尝试过使用max_by方法,但我完全错了。这是清楚和可以理解的-非常感谢。