无法对哈希进行排序尝试了几种不同的方法
Can't sort hash tried few different ways
我想按位置对散列进行排序,我正在使用 sort_by 但它没有像应该的那样进行排序
hash = {
"a": {"name": "a", "type": "text", "position": 1, "required": "false"},
"b": {"name": "b", "type": "text", "position": 4, "required": "false"},
"c": {"name": "c", "type": "text", "position": 2, "required": "false"},
"d": {"name": "d", "type": "text", "position": 3, "required": "false"}
}
为了对此进行排序,我正在使用以下命令
temp = hash.sort_by { |k,v| k[0]['position'] }
没有错误,但我在没有任何排序的情况下保存在哈希之上。即使我正在使用 temp 创建新的哈希,但它是相同的。我想要的地方应该按位置 1、2、3、4 排序。它是我在 Rails 上创建这些字段的 Ruby 的一部分。
sort_by
使用两个参数调用,k
和 v
引用条目的键和值。
既然要按位置排序,就得用v[:position]
:
hash.sort_by { |k, v| v[:position] }
#=> [[:a, {:name=>"a", :type=>"text", :position=>1, :required=>"false"}],
# [:c, {:name=>"c", :type=>"text", :position=>2, :required=>"false"}],
# [:d, {:name=>"d", :type=>"text", :position=>3, :required=>"false"}],
# [:b, {:name=>"b", :type=>"text", :position=>4, :required=>"false"}]]
我想按位置对散列进行排序,我正在使用 sort_by 但它没有像应该的那样进行排序
hash = {
"a": {"name": "a", "type": "text", "position": 1, "required": "false"},
"b": {"name": "b", "type": "text", "position": 4, "required": "false"},
"c": {"name": "c", "type": "text", "position": 2, "required": "false"},
"d": {"name": "d", "type": "text", "position": 3, "required": "false"}
}
为了对此进行排序,我正在使用以下命令
temp = hash.sort_by { |k,v| k[0]['position'] }
没有错误,但我在没有任何排序的情况下保存在哈希之上。即使我正在使用 temp 创建新的哈希,但它是相同的。我想要的地方应该按位置 1、2、3、4 排序。它是我在 Rails 上创建这些字段的 Ruby 的一部分。
sort_by
使用两个参数调用,k
和 v
引用条目的键和值。
既然要按位置排序,就得用v[:position]
:
hash.sort_by { |k, v| v[:position] }
#=> [[:a, {:name=>"a", :type=>"text", :position=>1, :required=>"false"}],
# [:c, {:name=>"c", :type=>"text", :position=>2, :required=>"false"}],
# [:d, {:name=>"d", :type=>"text", :position=>3, :required=>"false"}],
# [:b, {:name=>"b", :type=>"text", :position=>4, :required=>"false"}]]