如何按键对数组中的哈希进行排序?

Esa*_*aja 1 ruby arrays hash ruby-on-rails

例如:

arr = ["c", "e", "a", {"hello" => [1,2,3]}, {"bell" => [4,5,6]}]
Run Code Online (Sandbox Code Playgroud)

上面的变量指的是一个包含哈希和字符串的数组。我需要编写一个函数来按字母顺序对这个数组进行排序,同时散列按键排序。理想情况下,它必须返回以下内容:

["a", {"bell" => [4,5,6]}, "c", "e", {"hello" => [1,2,3]}]
Run Code Online (Sandbox Code Playgroud)

Mat*_*tW. 5

array.sort_by {|a| a.is_a?(Hash) ? a.keys.first : a }
Run Code Online (Sandbox Code Playgroud)