我已经休息了一段时间的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
为什么它没有正确排序?
答案 0 :(得分:1)
那是因为sortOn
用于按属性(documentation link)对对象进行排序。
sortOn()
允许您对具有一个或多个公共属性的对象进行排序,指定要用作排序键的属性
改为使用sort
。
sort()
允许您以各种预定义方式对数组元素进行排序,例如按字母顺序或数字顺序排列。您还可以指定自定义排序算法。
您还需要使用Array.NUMERIC
标记。
tmp_array.sort(Array.DESCENDING | Array.NUMERIC);