数组排序方法介绍

2016-01-29 13:02 2 1 收藏

数组排序方法介绍,数组排序方法介绍

【 tulaoshi.com - Flash 】

数组排序
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(ab){
    return -1;//返回-1,要求把a排在b的前面
   }else if(a<b){
   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(":");
   var gongzi2=b.split(":");
   if(gongzi1gongzi2){
      return -1;
   }else if(gongzi1<gongzi2){
      return 1;
   }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=name:"greg",city:"kansas city",zip:72345
array=name:"bob",city:"omaha",zip:68144

来源:https://www.tulaoshi.com/n/20160129/1488646.html

延伸阅读
标签: excel
excel2010数据排序方法   Excel2010对表格中的学生成绩进行降序排列如下图:     排序方法: 1.点击菜单栏的数据,如下图: 2.鼠标点击一下成绩表中任意一个单元格 3.点击功能区的排序 4.选中对话框的数据包含标题 5.点确定,即排名结束,结果如下: excel2010页边距怎么...
标签: Web开发
javascript 中 Array.sort()方法是用来对数组项进行排序的 ,默认情况下是进行升序排列,实例代码如下: var arrA = [6,2,4,3,5,1];arrA.sort();document.writeln(arrA); //结果是:1,2,3,4,5,6 sort() 方法可以接受一个 方法为参数 ,这个方法有两个参数。分别代表每次排序比较时的两个数组项。sort()排序时每次比较两个...
作者: 网易 学院 程序系教授管宁 以下两个例子要非常注意,函数传递的不是数组中数组元素的真实值而是数组在内存中的实际地址! /*程序作者:管宁 站点:www.cndev-lab.com 所有稿件均有版权,如要转载,请务必著名出处和作者*/ #include stdio.h void main(void) { void reversal(); static int a[10] = {0,1,2,3,4,5,6,7,8,9};...
1.数组反转 代码如下: import java.util.Arrays;  public class ArrayReverse {      public static void main(String[] args){          int[] arr ={1,2,3,4,5,6,7,8,9};          reverse(arr);      ...
标签: 电脑入门
Excel2010对表格中的学生成绩进行降序排列如下图: 排序方法: 1.点击菜单栏的数据,如下图: 2.鼠标点击一下成绩表中任意一个单元格 3.点击功能区的排序 4.选中对话框的数据包含标题 5.点确定,即排名结束,结果如下:

经验教程

347

收藏

24
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部