【发布时间】:2023-03-16 14:22:01
【问题描述】:
我有这个数组:
data = [
['Frank', 33],
['Stacy', 15],
['Juan', 24],
['Dom', 32],
['Steve', 24],
['Jill', 24]
]
我把它变成了一个散列,这样我就可以通过键和值来组织它,这样它们就更容易单独调用了。最终给了我这个
{"Frank"=>33, "Stacy"=>15, "Juan"=>24, "Dom"=>32, "Steve"=>24, "Jill"=>24}
我知道为了只看到我需要执行data.keys 的键,并且通过执行data.keys.sort 我可以按字母顺序获取键。
我假设我需要执行data.keys.sort_by { |key, value| value } 之类的操作,但每当我运行时,我都会按原始顺序接收哈希键。
【问题讨论】:
-
很难以编程方式执行,因为您有重复的键。否则,类似于 data.to_h.map { |k,v| v }.sort.map { |vv| {h.key(vv) => vv} } 会起作用。
-
当你的值相同时会发生什么?
-
是的...为清楚起见,data.to_h.map { |k,v| v }.sort.map { |vv| {h.key(vv) => vv} } 将起作用,除了 values 重复,而不是键。