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 相关文章推荐
用JavaScript页面不刷新时全选择,全删除(GridView)
Apr 14 Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
Nov 15 Javascript
JQuery 图片的展开和伸缩实例讲解
Apr 18 Javascript
JavaScript中检测变量是否存在遇到的一些问题
Nov 11 Javascript
javascript的动态加载、缓存、更新以及复用(一)
Jun 09 Javascript
js 动态修改css文件用到了cssRule
Aug 20 Javascript
javascript检测浏览器的缩放状态实现代码
Sep 28 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
Oct 10 Javascript
简单实现js上传文件功能
Aug 21 Javascript
vue router总结 $router和$route及router与 router与route区别
Jul 05 Javascript
swiper4实现移动端导航切换
Oct 16 Javascript
js实现html滑动图片拼图验证
Jun 24 Javascript
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截取字符串并保留完整xml标签的函数代码
2013/02/06 PHP
php不使用copy()函数复制文件的方法
2015/03/13 PHP
js 判断 enter 事件
2009/02/12 Javascript
javascript 对象比较实现代码
2009/04/27 Javascript
JQuery自定义事件的应用 JQuery最佳实践
2010/08/01 Javascript
jquery下jstree简单应用 - v1.0
2011/04/14 Javascript
直接在JS里创建JSON数据然后遍历使用
2014/07/25 Javascript
通过JS来动态的修改url,实现对url的增删查改
2014/09/01 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
js实现上下左右弹框划出效果
2017/03/08 Javascript
详解基于webpack和vue.js搭建开发环境
2017/04/05 Javascript
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
2019/11/26 Javascript
python3+PyQt5泛型委托详解
2018/04/24 Python
Python中的Numpy矩阵操作
2018/08/12 Python
python障碍式期权定价公式
2019/07/19 Python
Python 统计位数为偶数的数字代码详解
2020/03/15 Python
jupyter notebook插入本地图片的实现
2020/04/13 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案
2021/01/29 Python
上海奥佳笔试题面试题
2016/11/16 面试题
25道Java面试题集合
2013/05/21 面试题
中学实习教师自我鉴定
2013/12/12 职场文书
给领导的致歉信范文
2014/01/13 职场文书
青年志愿者事迹材料
2014/02/07 职场文书
公司接待方案
2014/03/08 职场文书
公证委托书模板
2014/04/03 职场文书
2015社区个人工作总结范文
2015/05/13 职场文书
歌舞青春观后感
2015/06/10 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
公司借款担保书
2015/09/22 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
Python实现自动玩连连看的脚本分享
2022/04/04 Python