我在 Flex 中有以下字典,我想按值对其进行排序。找不到任何资源。

'1'=>2, '0' =>1, '3'=>4 ..

有任何想法吗 ?我如何按值对其进行排序?

有帮助吗?

解决方案

也许不是最好的方式做到这一点,但它的工作原理:

var a:Array = new Array();
for each (var v:Number in dict)
{
  a.push(v);
}

a.sort();

其他提示

我四处寻找类似的解决方案,只是我需要对字典映射进行排序并返回与键值对相关的排序集合。在未能找到已发布的解决方案后,我总结了以下方法。此方法采用字典作为输入,创建一个维护关联的数组,然后使用 array.sortOn() 对结果数组进行排序,并将排序后的结果作为数组返回。为了清楚起见,下例中使用了数组中的“key”和“value”字段,但可以使用任何字段名称。

此示例假设字符串对象作为键,数字对象作为值,当然可以使用任何对象类型,并调整字段参数。

下面的方法也可以用于通过使用“key”作为 sortOn 方法的排序字段来按键而不是值进行排序,并且您可以使用与我在此处使用的降序数字排序不同的排序选项( AS3 SortOn() 文档)下面的代码故意是非通用的,以简化示例目的。

      public static function sortDictionaryByValue(d:Dictionary):Array
        {
          var a:Array = new Array();
          for (var dictionaryKey:Object in d)
          {
            a.push({key:dictionaryKey,value:d[dictionaryKey]});
          }
          a.sortOn("value",[Array.NUMERIC|Array.DESCENDING]);
          return a;
        }   
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top