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

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

  var a =[ 1,3,123,41,5];

          //js sort 排序    a-b 从小到大排序,  b-a 从大到小排序
function sort(){
a.sort(function(a,b){
return a-b;
});
};
console.log(a);

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

  // 期望结果[张1广州,小张4广州,李2上海,小李3上海,赵5深圳,王7北京]
var arr = [
["张", "1:00", "广州"],
["小张", "4: 00", "广州"],
["王", "7: 00", "北京"],
["李", "2: 00", "上海"],
["小李", "3: 00", "上海"],
["赵", "5: 00", "深圳"]
]; var tmp = "广州,上海,深圳,北京";
arr.sort(function(a, b) {
var da = new Date("1111/1/1," + a[1].replace(/^\s*|\s*$/g, '') + ":0");
var db = new Date("1111/1/1," + b[1].replace(/^\s*|\s*$/g, '') + ":0");
var pa = tmp.indexOf(a[2]),
pb = tmp.indexOf(b[2]);
if (pa > pb) {
return 1;
} else if (pa < pb) {
return -1;
} else {
if (da > db) {
return 1;
} else if (da < db) {
return -1;
} else {
return 0;
}
}
});

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

   // 按照对象属性来排序  希望返回结果:
/* {"name":"aa","age":21,"place":"cplace"},
{"name":"aa","age":21,"place":"eplace"},
{"name":"aa","age":22,"place":"aplace"},
{"name":"aa","age":22,"place":"cplace"},
{"name":"aa","age":22,"place":"dplace"},
{"name":"aa","age":23,"place":"dplace"},
{"name":"bb","age":21,"place":"eplace" },
{"name":"bb","age":22,"place":"vplace" },
{"name":"bb","age":24,"place":"fplace" },
{"name":"cc","age":12,"place":"aplace"},
{"name":"ee","age":29,"place":"fplace"},*/
var myArry = [{"name":"bb","age":22,"place":"vplace" },
{"name":"cc","age":12,"place":"cplace"},
{"name":"aa","age":21,"place":"cplace"},
{"name":"aa","age":23,"place":"dplace"},
{"name":"aa","age":21,"place":"eplace"},
{"name":"aa","age":22,"place":"aplace"},
{"name":"aa","age":22,"place":"cplace"},
{"name":"aa","age":22,"place":"dplace"}, {"name":"bb","age":24,"place":"fplace" },
{"name":"ee","age":29,"place":"fplace"},
{"name":"bb","age":21,"place":"eplace" }]
myArry.sort(function(a,b){
if(a.name< b.name){
return -1;
}else if(a.name > b.name) {
return 1;
}else {
if(a.age< b.age){
return -1;
}else if(a.age> b.age){
return 1;
}else {
if(a.name< b.name){
return -1;
}else if(a.age> b.age){
return 1;
}else{
return 0;
} }
}
})

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

  var myArry = [{"name":"渭南","age":22,"place":"vplace" },
{"name":"商洛","age":12,"place":"cplace"},
{"name":"汉中","age":22,"place":"dplace"},
{"name":"西安","age":23,"place":"dplace"},
{"name":"延安","age":21,"place":"eplace"},
{"name":"榆林","age":22,"place":"aplace"},
{"name":"宝鸡","age":22,"place":"cplace"}, {"name":"铜川","age":24,"place":"fplace" },
{"name":"榆林","age":21,"place":"cplace"}];
var temp = "西安,汉中,渭南,商洛,延安,榆林,宝鸡,铜川";
myArry.sort(function(a,b){
var pa = temp.indexOf(a.name);
var pb = temp.indexOf(b.name);
if(pa< pb){
return -1;
}else if(pa > pb) {
return 1;
}else {return 0;
}
})

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

最新文章

  1. Windows Phone App Studio发布重要更新-支持Windows 8.1 源代码生成
  2. cisco-log
  3. Java并发之工具类 ForkJoin 任务分解
  4. lecture12-玻尔兹曼机和受限玻尔兹曼机
  5. EF环境搭建碰到的问题
  6. CSS 高级语法 ---- 继承和选择器的分组
  7. android Camera 中添加一种场景模式
  8. [tty与uart]UART中的硬件流控RTS与CTS
  9. Git之忽略文件(ignore file)
  10. MVC 实现计算页面执行时间
  11. CSS小注意(初级)
  12. PS抠图神器: KnockOut 2.0安装汉化和使用教程
  13. Selenium Grid和IE /Firefox各种填坑
  14. 二维数组中的查找问题--剑指offer面试题3
  15. 34对MyBatis的博客的整理心得
  16. UML和模式应用5:细化阶段(4)--如何创建领域模型
  17. [转载]oracle的常用函数 instr() 和substr()函数
  18. 使用Keepalived实现linux高可用集群
  19. SSM框架中,配置数据库连接的问题
  20. 【GZAdmin】开源BS demo快速搭建

热门文章

  1. A、B、C、D和E类IP地址
  2. Fix the iOS code signing issue when using Jenkins
  3. AVLTree 平衡树
  4. [转] 从 C 到 Objective C 入门1
  5. Java_DOM创建XML
  6. python中转义用法 r&#39;&#39;
  7. Ext JS 4 新特性2:配置项属性(config)之一
  8. aspjpeg 组件在asp中的使用
  9. 快速了解IOC的几种姿势
  10. nosql-&gt;redis学习 数据类型