如何调整一个hash里元素的位置。
@users: {"first"=>3, "second"=>25, "teji"=>1, "third"=>13}
把这个hash的 teji 的这个元素放在你第一个。变成
@users: {"teji"=>1, "first"=>3, "second"=>25, "third"=>13}
实现代码如下:
@users = @users.group("promotions.application_level").count("promotions.application_level")
Rails.logger.info "== users: #{@users.inspect}"
#给@users 重新排序 ,国家级(teji)排在最前面
@users_array = @users.sort
teji = @users_array[2]
@users_array.delete(teji) #删除特级这个元素。
Rails.logger.info "== users_array: #{@users_array.inspect}"
@users_array.unshift(teji) #在数组的开头加入一个元素。
Rails.logger.info "== users_array2: #{@users_array.inspect}"
@users = Hash[*@users_array.flatten] #把一个二维数组变成 hash
Rails.logger.info "== users: #{@users.inspect}"
对应的log如下:
12:20:56 INFO: == users_array: [["first", 3], ["second", 25], ["third", 13]]
12:20:56 INFO: == users_array2: [["teji", 1], ["first", 3], ["second", 25], ["third", 13]]
12:20:56 INFO: == users: {"teji"=>1, "first"=>3, "second"=>25, "third"=>13}