AS3数组排序问题

时间:2015-01-11 18:57:03

标签: arrays actionscript-3 flash sorting

我已经休息了一段时间的AS3,至少可以说我生锈了。

我希望我的数组按大小顺序排列(从最小到最大)。

这是我的代码

    public function sort_by_value():void
    {
        var tmp_array:Array = new Array();
        var counter:Number = 1;

        for each (var hand_card:Number in TABLE.CARDS_IN_PLAYER_1_HAND)
        {
            tmp_array.push(hand_card);
            trace(hand_card)
            counter++;
        }

        tmp_array.sortOn(Array.DESCENDING);
         trace(tmp_array);
    }

这是输出。

34
40
51
30
8
27
14
52
36
19
50
33
9

14,40,51,30,8,27,34,52,36,19,50,33,9

为什么它没有正确排序?

1 个答案:

答案 0 :(得分:1)

那是因为sortOn用于按属性(documentation link)对对象进行排序。

  

sortOn()允许您对具有一个或多个公共属性的对象进行排序,指定要用作排序键的属性

改为使用sort

  

sort()允许您以各种预定义方式对数组元素进行排序,例如按字母顺序或数字顺序排列。您还可以指定自定义排序算法。

您还需要使用Array.NUMERIC标记。

实施例

tmp_array.sort(Array.DESCENDING | Array.NUMERIC);