我有一个哈希值如下:
hash = {
'red': { something: ''},
'green': { something: '' },
'yellow': { something: ''}
}
做这种事情最简单的方法是什么:
hash.sort_by_key_with_priority(['green', 'yellow', 'red'])
然后返回:
hash = {
'green': { something: '' },
'yellow': { something: ''},
'red': { something: ''},
}
最佳答案
如果优先级数组包含所有哈希键,则不需要排序你可以简单地把散列分解并构造一个新的散列。
hash = {
red: { something: ''},
green: { something: '' },
yellow: { something: ''}
}
priority = %i[green yellow red]
hash.slice(*priority)
# => {:green=>{:something=>""}, :yellow=>{:something=>""}, :red=>{:something=>""}}