我有一个散列,其中键是整数,值是字符串数组。然后我需要按字母顺序对数组中的项目进行排序,并将排序后的数组作为新的哈希值返回。
我想像 hash.map{ |k,v| v.sort
可以,但是不行。为了更明确一点,我需要转向:
hash = { 0 => ["c", "d", "b", "a"], 1 => ["e", "q", "x", "m"] }
进入:
hash = { 0 => ["a", "b", "c", "d"], 1 => ["e", "m", "q", "x"] }
最佳答案
这是一种方式:
hash.each_value { |v| v.sort! }
#=> {0=>["a", "b", "c", "d"], 1=>["e", "m", "q", "x"]}
或更简洁:
hash.each_value(&:sort!)
但是,如果您希望保留原始哈希值,请执行以下操作:
hash.map { |k,v| [k,v.sort] }.to_h
#=> {0=>["a", "b", "c", "d"], 1=>["e", "m", "q", "x"]}
关于arrays - 对作为哈希值的数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41372853/