js二维数组排序的简单示例代码


Posted in Javascript onJanuary 24, 2014

如下所示:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <script type="text/javascript">
  <!-- function getCard(m){
  var ret = [], rnd; 
  for(var i = 0; i < m; i++){
   rnd = Math.floor(Math.random()*(i+0.9999));
   ret[i] = ret[rnd];
   ret[rnd] = i
  }
  return ret;
 }
 var data = [];
 {
  for(var i = 0; i < 100; i ++){
   data.push(getCard(10));
  }
 }
 // 二维数据排序
 function mySort(array, col, ord, b, e){
  if(array.length == 0) return;
  //document.write("排序前"+array);
  var t = [], s, i, curCol = col[0];
  for(i = b; i < e; i ++){
   s = new String(array[i][curCol]);
   s._obj = array[i];
   t.push(s)
  }
  t.sort();
  if(ord[0] == "des"){
   t.reverse();
  }
  for(i = 0; i < e - b; i++){
   //document.write("<br/>");
   //document.write(array[i]);
   //document.write("<br/>");
   //document.write(t[i]._obj);
   //document.write("<br/>");
   //document.write(t[i]._obj == array[b+i]);
   array[b+i] = t[i]._obj;
  }
  //document.write("排序后====================<br/>")
  //print(array);
  var begin, end;
  if(col.length > 1){
   col.shift();
   ord.shift();
   begin = b;
   for(i = b; i < e - b - 1; i++){
    if( array[i][curCol] != array[i+1][curCol] ){
     end = i+1;
     //document.write("begin="+begin+"end="+end+"<br/>");
     mySort(array,col,ord,begin,end);
     begin = end;
    }
   }
   if(begin != e){
    mySort(array,col,ord,begin,e);
   }
  }

  //document.write("<br/>");
  //document.write("排序后"+array);
 }
 function print(data){
  for(var i = 0; i < data.length; i++){
   document.write(data[i]+"<br/>");
  }
 }
 document.write("排序前====================<br/>");
 print(data);
 var b = new Date().getTime();;
 mySort(data, [0,1,2],['asc','des','asc'],0,data.length); 
 document.write("用时"+(new Date().getTime() - b));
 document.write("排序后====================<br/>")
 print(data);
  //-->
  </script>
 </head>
 <body>
 </body>
</html>
Javascript 相关文章推荐
JS 实现Json查询的方法实例
Apr 12 Javascript
jQuery$命名冲突怎么办如何解决
Jan 16 Javascript
jQuery的:parent选择器定义和用法
Jul 01 Javascript
JavaScript中常用的六种互动方法示例
Mar 13 Javascript
Three.js基础部分学习
Jan 08 Javascript
一个简单的node.js界面实现方法
Jun 01 Javascript
vue代理和跨域问题的解决
Jul 18 Javascript
Node.js连接Sql Server 2008及数据层封装详解
Aug 27 Javascript
vue实现移动端悬浮窗效果
Dec 01 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
Mar 22 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
Jul 15 Javascript
vue el-upload上传文件的示例代码
Dec 21 Vue.js
js中数组(Array)的排序(sort)注意事项说明
Jan 24 #Javascript
Array 重排序方法和操作方法的简单实例
Jan 24 #Javascript
JS数组去重与取重的示例代码
Jan 24 #Javascript
关于js数组去重的问题小结
Jan 24 #Javascript
js数组去重的常用方法总结
Jan 24 #Javascript
JQuery的$和其它JS发生冲突的快速解决方法
Jan 24 #Javascript
js判断60秒以及倒计时示例代码
Jan 24 #Javascript
You might like
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
2014/06/27 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
制作安全性高的PHP网站的几个实用要点
2014/12/30 PHP
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
仿百度联盟对联广告实现代码
2014/08/30 Javascript
Javascript学习笔记之函数篇(五) : 构造函数
2014/11/23 Javascript
javascript中typeof操作符和constucor属性检测
2015/02/26 Javascript
jQuery实现图片左右滚动特效
2020/04/20 Javascript
jQuery处理XML文件的几种方法
2016/06/14 Javascript
JavaScript中splice与slice的区别
2017/05/09 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
深入理解Angular4订阅(Subscribe)与取消
2017/11/22 Javascript
在Python的Bottle框架中使用微信API的示例
2015/04/23 Python
Python对象属性自动更新操作示例
2018/06/15 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
如何基于Python实现电子邮件的发送
2019/12/16 Python
解决Python 写文件报错TypeError的问题
2020/10/23 Python
详解Pymongo常用查询方法总结
2021/01/29 Python
Myprotein意大利官网:欧洲第一运动营养品牌
2018/11/22 全球购物
水污染治理工程专业自荐信
2014/06/21 职场文书
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
代理人委托书
2014/09/16 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
入党现实表现材料
2014/12/23 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
SQL Server 数据库实验课第五周——常用查询条件
2021/04/05 SQL Server