我看到了几篇关于对作为散列值的数组进行排序的帖子,但我正在尝试对作为散列值的数组的数组进行排序。 我有一个看起来像这样的散列:
h = {
"pets"=>[["dog", 1], ["cat", 2]],
"fruits"=>[["orange", 1], ["apple", 2]]
}
我想根据内部数组的第一个元素(字符串)对数组数组进行排序。 所以我希望结果是
{
"pets"=>[["cat", 2], ["dog", 1]],
"fruits"=>[["apple", 2], ["orange", 1]]
}
这是我现在拥有的:
h.map do |key, value|
value.sort_by! { |x, y| x[0] <=> y[0] }
end
但这只是返回原始数组。我需要改变什么? 谢谢!
最佳答案
不可变版本,没有副作用:
h.map { |k, v| [k, v.sort_by(&:first)] }.to_h
关于arrays - 对作为哈希值的数组的数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45891226/