AS3 数组排序问题
AS3 Array sorting issue
我已经有一段时间没有使用 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
为什么排序不正确?
这是因为 sortOn
用于按 属性(documentation link)对对象进行排序。
sortOn()
Allows you to sort objects that have one or more common properties, specifying the property or properties to use as the sort keys
改用sort
。
sort()
Allows you to sort the Array’s elements in a variety of predefined ways, such as alphabetical or numeric order. You can also specify a custom sorting algorithm.
您还需要使用 Array.NUMERIC
标志。
示例:
tmp_array.sort(Array.DESCENDING | Array.NUMERIC);
我已经有一段时间没有使用 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
为什么排序不正确?
这是因为 sortOn
用于按 属性(documentation link)对对象进行排序。
sortOn()
Allows you to sort objects that have one or more common properties, specifying the property or properties to use as the sort keys
改用sort
。
sort()
Allows you to sort the Array’s elements in a variety of predefined ways, such as alphabetical or numeric order. You can also specify a custom sorting algorithm.
您还需要使用 Array.NUMERIC
标志。
示例:
tmp_array.sort(Array.DESCENDING | Array.NUMERIC);