数组排序方法介绍
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-10
数组排序 sort sort方法把数组元素按一定的顺序重新排列,语法格式如下: myArray.sort([comparefunction]) comparefunction是可选参数,如果不选用该参数,数组元素按从小到大的顺序排列。 例如: var array=new Array("China","Japan","Korea","Canada"); trace(array.join()); array.sort(); trace(array.join()); 你可以作一下。复制代码然后粘贴过去,运行,就可以看到效果的。 输出结果为China,Japan,Korea,Canada Canada,China,Japan,Korea comparefunction参数是一个用于决定排列顺序的函数。该函数需要传递两个参数A和B,当调用该函数的对数组进行排序的时候,就把数组中相邻的两个元素值作为参数传递给函数,然后在函数种对这两个元素进行比较。最后根据函数的返回值确定排列的顺序。规则如下: 返回-1:A派在B前面。 返回0:位置不便。 返回1:A在B后面。 下面给出一个例子来,在该例子种创建了一个数组,该数组原是的顺序是从小到大排列,调用排序函数后,改为从大到小排列。 var array=new Array(1,2,3,4,5); trace(arrat.join()); //调用排序函数排列 array.sort(order); trace(array.join()); //定义排序函数,要求降序排列 function order(a,b){ if(a>b){ return -1;//返回-1,要求把a排在b的前面 }else if(a return 1;//返回1,把a排在b的后面 }else{ return 0;//返回0,保持不变 } } 输出结果为1,2,3,4,5 5,4,3,2,1 这只是简单的一些排序,如果需要根据数组元素的一部分进行排序,就要结合使用字符对象的方法split分割字符串,然后取其中的某个部分进行排序。 例如下面的例子。要对几个人的工资进行排序,数据按姓名:工资形式记录。 代码如下: gongzi=new Array("里根:3500","布什:3200","克林顿:8888","老不是:1500"); trace("没有排序的结果:"); trace(gongzi.join()); trace("按照默认的方式排序的结果"); gongzi.sort(); trace(gongzi.join()); trace("按从高到低排序的结果:"); gongzi.sort(order); trace(gongzi.join()); function order(a,b){ var gongzi1=a.split(":")[1]; var gongzi2=b.split(":")[1]; if(gongzi1>gongzi2){ return -1; }else if(gongzi1 }else{ return 0; } } 大家可以看一下结果。看看前后有什么差别。 sortOn sortOn方法按数组中某个字段对数组元素进行排序。语法格式如下: array.sortOn(fieldName) fieldName参数是用作排序值的数组元素字段名。如果没有传递fieldName参数,则排序操作将失败。 如果传递了多个fieldName参数,则第一个字段将被转换为字符串值,而其余参数将被忽略。如果被比较的数组元素不包含fieldName参数中制定的字段,则默认按不制定比较函数的sort方法排序。 下面给出一个简单的例子,并按字段city排序: var array=new Array(); array.push({name:"bob",city:"omaha",zip:68144}); array.push({name:"greg",city:"kansas city",zip:72345}); array.push({name:"chris",city:"burlingame",zip:94010}); array.sortOn("city"); 排序后结果如下: array[0]=name:"chris",city:"burlingame",zip:94010 array[1]=name:"greg",city:"kansas city",zip:72345 array[2]=name:"bob",city:"omaha",zip:68144以上代码可以直接复制。 不过写这个真的很费精力,所以呢,我就一边写完了,也没有检查阿,如果复制过去后出现什么问题。请告诉我,好让我把这个东西再改正。谢谢。 关键词:排序 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 避免FLASH遮住菜单的方法下一篇: Flash Paper 2
关于数组排序方法介绍的所有评论