Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 当每个键有多个值时,如何访问哈希并将其映射到最小值?_Arrays_Ruby_Dictionary_Hashmap - Fatal编程技术网

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方法,但我完全错了。这是清楚和可以理解的-非常感谢。