求救;找高手给解释下sort()在flash中的应用

求救;找高手给解释下sort()在flash中的应用,第1张

Arraysort()
用法
my_arraysort()
my_arraysort(compareFunction)
my_arraysort(option | option | )
my_arraysort(compareFunction, option | option | )
参数
compareFunction 一个用来确定数组元素排序顺序的可选比较函数。给定元素 A 和 B,compareFunction 的结果可具有以下三个值之一:
-1,如果 A 应在排序后序列中出现在 B 之前
0,如果 A = B
1,如果 A 应在排序后序列中出现在 B 之后
option 由 |(按位 OR)运算符分隔的一个或多个数字或字符串,这些数字或字符串更改根据默认值排序的行为。下面是 option 可以接受的值:
1 或 ArrayCASEINSENSITIVE
2 或 ArrayDESCENDING
4 或 ArrayUNIQUE
8 或 ArrayRETURNINDEXEDARRAY
16 或 ArrayNUMERIC
有关此参数的信息,请参见 ArraysortOn()。
返回
返回值取决于是否传递任何参数:
如果您为 option 指定值 4 或 ArrayUNIQUE,并且所排序的两个或多个元素具有相同的排序字段,则 Flash 返回值 0 并且不修改该数组。
如果您为 option 指定值 8 或 ArrayRETURNINDEXEDARRAY,则 Flash 将返回反映排序结果的数组并且不修改该数组。
否则,Flash 不返回任何内容并修改该数组以反映排序顺序。
说明
方法;对数组中的元素进行排序。Flash 根据 ASCII (Unicode) 值排序。如果所比较的两个元素中的任何一个不包含在 fieldName 参数中指定的字段,则认为该字段是 undefined,并且在排序后的数组中不按任何特定顺序连续放置这些元素。
默认情况下,Arraysort() 按如下方式工作:
排序区分大小写(Z 位于 a 之前)。
排序是升序(a 位于 b 之前)。
修改该数组以反映排序顺序;在排序后的数组中不按任何特定顺序连续放置具有相同排序字段的多个元素。
数值字段就像是字符串一样排序,因此 100 位于 99 之前,因为“1”是比“9”低的字符串值。
不返回任何内容。
如果您要以其它方式排序,则创建一个进行所需排序的函数并将其名称传递给 compareFunction 参数。例如,如果您要按姓氏以字母顺序的升序排序,然后按邮编以降序排序,则可以创建相应的函数并传递其名称。
如果您要指定作为排序依据的一个或多个字段,并且使用默认排序或 options 参数,则使用 ArraysortOn()。
示例
用法 1:以下示例显示如何使用 Arraysort(),以具有和不具有为 option 传递的值这两种情况为例:
var fruits_array = ["oranges", "apples", "strawberries", "pineapples", "cherries"];
trace(fruits_arrayjoin());
fruits_arraysort();
trace(fruits_arrayjoin());
fruits_arraysort(ArrayDESCENDING);
trace(fruits_arrayjoin());
“输出”面板将显示以下结果:
oranges,apples,strawberries,pineapples,cherries // 原始数组
apples,cherries,oranges,pineapples,strawberries // 默认排序
strawberries,pineapples,oranges,cherries,apples // 降序
用法 2:以下示例将 Arraysort() 与比较函数一起使用。
var passwords = ["mom:glam","ana:ring","jay:mag","anne:home","regina:silly"];
function order (a,b){
//要排序的条目采用 name:password 的形式
//只将条目的名称部分作为关键字排序。
var name1 =asplit(":")[0 ];
var name2 =bsplit(":")[0 ];
if (name1 <name2){
return -1;
}
else if (name1 >name2){
return 1;
}
else {
return 0;
}
}
trace ("Unsorted:");
trace (passwordsjoin());
passwordssort(order);
trace ("Sorted:");
trace (passwordsjoin());
“输出”面板将显示以下结果:
Unsorted:
mom:glam,ana:ring,jay:mag,anne:home,regina:silly
Sorted:
ana:ring,anne:home,jay:mag,mom:glam,regina:silly

你到底是想要一个随机数 还是要列举出所有数啊
function rnd(min:Number, max:Number):Number {
return int(Mathrandom()(max-min+1))+min;
}
for (i=1; i<100; i++) {
trace(rnd(0, 30));
}
这是我16级大号 为什么不能匿名回答问题,答的问题多,搜索引擎收录得多,别人人肉搜索的时候方便 ,为什么要方便别人呢

利用数组来进行随机,每次获取数组中随机位置的一个值
var randomAry:Array=["A","B","C"];
function beginRandom():Array
{
var returnAry:Array=new Array();
for(var i:int=0;i<4;i++)
{
var randStr:String=String(randomAry[int(randomArylengthMathrandom())]);
returnArypush(randStr);
}
return returnAry;
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10558183.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存