js的排序中通常使用到sort函数,可以用冒泡排序,插入排序,快速排序,希尔排序,系统方法等方法,本文结束后分享一个用着排序算法的链接,感兴趣可以了解了解。

1、常见的对一般数组进行排序,代码如下:

1  var a =[ 1,3,123,41,5];
2 
3          //js sort 排序    a-b 从小到大排序,  b-a 从大到小排序
4          function sort(){
5              a.sort(function(a,b){
6                  return a-b;
7              });
8          };
9          console.log(a);

2、对特殊数组的排序,代码如下:

 1  // 期望结果[张1广州,小张4广州,李2上海,小李3上海,赵5深圳,王7北京]
 2          var arr = [
 3              ["张", "1:00", "广州"],
 4              ["小张", "4: 00", "广州"],
 5              ["王", "7: 00", "北京"],
 6              ["李", "2: 00", "上海"],
 7              ["小李", "3: 00", "上海"],
 8              ["赵", "5: 00", "深圳"]
 9          ];
10 
11          var tmp = "广州,上海,深圳,北京";
12          arr.sort(function(a, b) {
13              var da = new Date("1111/1/1," + a[1].replace(/^\s*|\s*$/g, '') + ":0");
14              var db = new Date("1111/1/1," + b[1].replace(/^\s*|\s*$/g, '') + ":0");
15              var pa = tmp.indexOf(a[2]),
16                      pb = tmp.indexOf(b[2]);
17              if (pa > pb) {
18                  return 1;
19              } else if (pa < pb) {
20                  return -1;
21              } else {
22                  if (da > db) {
23                      return 1;
24                  } else if (da < db) {
25                      return -1;
26                  } else {
27                      return 0;
28                  }
29              }
30          });

3、对一个数组对象来排序,代码如下:

 1   // 按照对象属性来排序  希望返回结果:
 2         /*   {"name":"aa","age":21,"place":"cplace"},
 3          {"name":"aa","age":21,"place":"eplace"},
 4          {"name":"aa","age":22,"place":"aplace"},
 5          {"name":"aa","age":22,"place":"cplace"},
 6          {"name":"aa","age":22,"place":"dplace"},
 7          {"name":"aa","age":23,"place":"dplace"},
 8          {"name":"bb","age":21,"place":"eplace" },
 9          {"name":"bb","age":22,"place":"vplace" },
10          {"name":"bb","age":24,"place":"fplace" },
11          {"name":"cc","age":12,"place":"aplace"},
12          {"name":"ee","age":29,"place":"fplace"},*/
13          var myArry = [{"name":"bb","age":22,"place":"vplace" },
14              {"name":"cc","age":12,"place":"cplace"},
15              {"name":"aa","age":21,"place":"cplace"},
16              {"name":"aa","age":23,"place":"dplace"},
17              {"name":"aa","age":21,"place":"eplace"},
18              {"name":"aa","age":22,"place":"aplace"},
19              {"name":"aa","age":22,"place":"cplace"},
20              {"name":"aa","age":22,"place":"dplace"},
21 
22              {"name":"bb","age":24,"place":"fplace" },
23              {"name":"ee","age":29,"place":"fplace"},
24              {"name":"bb","age":21,"place":"eplace" }]
25          myArry.sort(function(a,b){
26              if(a.name< b.name){
27                  return -1;
28              }else if(a.name > b.name) {
29                  return 1;
30              }else {
31                  if(a.age< b.age){
32                      return -1;
33                  }else if(a.age> b.age){
34                      return 1;
35                  }else {
36                      if(a.name< b.name){
37                          return -1;
38                      }else if(a.age> b.age){
39                          return 1;
40                      }else{
41                          return  0;
42                      }
43 
44                  }
45              }
46          })

 4、对一个数组对象按照指定顺序排列,代码如下:

 1  var myArry = [{"name":"渭南","age":22,"place":"vplace" },
 2              {"name":"商洛","age":12,"place":"cplace"},
 3              {"name":"汉中","age":22,"place":"dplace"},
 4              {"name":"西安","age":23,"place":"dplace"},
 5              {"name":"延安","age":21,"place":"eplace"},
 6              {"name":"榆林","age":22,"place":"aplace"},
 7              {"name":"宝鸡","age":22,"place":"cplace"},
 8 
 9              {"name":"铜川","age":24,"place":"fplace" },
10               {"name":"榆林","age":21,"place":"cplace"}];
11          var temp = "西安,汉中,渭南,商洛,延安,榆林,宝鸡,铜川";
12          myArry.sort(function(a,b){
13              var pa = temp.indexOf(a.name);
14              var pb =  temp.indexOf(b.name);
15              if(pa< pb){
16                  return -1;
17              }else if(pa > pb) {
18                  return 1;
19              }else {return 0;
20              }
21          })

 

另外分享一个连接:http://www.cnblogs.com/idche/archive/2011/02/16/1956397.html 讲的是冒泡排序,插入排序,快速排序,希尔排序,系统方法等方法进行排序。