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 相关文章推荐
jQuery对象和DOM对象使用说明
Jun 25 Javascript
javascript使用activex控件的代码
Jan 27 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
Mar 18 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
Dec 02 Javascript
jquery UI Datepicker时间控件冲突问题解决
Dec 16 Javascript
javascript基础知识讲解
Jan 11 Javascript
详解Vue2 无限级分类(添加,删除,修改)
Mar 07 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
May 17 Javascript
Angularjs实现数组随机排序的方法
Oct 02 Javascript
node错误处理与日志记录的实现
Dec 24 Javascript
你不可不知的Vue.js列表渲染详解
Oct 01 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
Oct 28 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
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
php统计文章排行示例
2014/03/04 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
Yii 2.0自带的验证码使用经验分享
2017/06/19 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
jQuery选择器源码解读(二):select方法
2015/03/31 Javascript
jQuery Ajax使用FormData对象上传文件的方法
2016/09/07 Javascript
Javascript下拉刷新的简单实现
2017/02/14 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
JS中Map和ForEach的区别
2018/02/05 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
jQuery实现回到顶部效果
2020/10/19 jQuery
[01:14:19]NAVI vs Mineski 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
python从网络读取图片并直接进行处理的方法
2015/05/22 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
python字符串与url编码的转换实例
2018/05/10 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
Pytorch之保存读取模型实例
2019/12/30 Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
2020/01/10 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
2020/02/16 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
北京SQL新华信咨询
2016/09/30 面试题
致100米运动员广播稿
2014/02/14 职场文书
六一节目主持词
2014/04/01 职场文书
鉴定评语大全
2014/05/05 职场文书
党员干部公开承诺书范文
2015/04/27 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
学校教学工作总结2015
2015/05/19 职场文书
圣诞晚会主持词
2015/07/01 职场文书
Python中的协程(Coroutine)操作模块(greenlet、gevent)
2022/05/30 Python