我有这样的哈希数组
{'id' => 'ID001', 'count' => 1}
{'id' => 'ID003', 'count' => 2}
{'id' => 'ID002', 'count' => 1}
我这样做是为了打印列表
myarray.each_with_index do |i, p|
puts "\n #{p+1}) #{i['id']} n. #{i['count'].to_s}"
end
它运行完美,实际上,我得到了:
1) 'ID001' n. 1
2) 'ID003' n. 2
3) 'ID002' n. 1
是否可以通过"ID"
键对哈希进行排序?
答案 0 :(得分:3)
myarray.
sort_by { |h| h['id'][/\d+/].to_i }.
each.
with_index(1) do |h, idx|
puts ["\n", "#{idx})", h['id'], "n.", h['count']].join(' ')
end
答案 1 :(得分:0)
my_array看起来像这样:
{"ID02"=>"xx", "ID01"=>"a", "ID00"=>"ba", "ID04"=>"zz"}
运行此命令时:
my_array.sort_by { |key, value| key }
输出将返回一个数组为:
[["ID00", "ba"], ["ID01", "a"], ["ID02", "xx"], ["ID04", "zz"]]
我猜您仍然希望它包含在哈希中,但是具有有序键并不是哈希的固有功能。