我有一个哈希值如下:

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=>""}}

10-01 07:10
查看更多