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 事件的命名空间简单了解
Nov 22 Javascript
JavaScript变量的作用域全解析
Aug 14 Javascript
深入浅析search 搜索框的写法
Aug 02 Javascript
基于JavaScript实现熔岩灯效果导航菜单
Jan 04 Javascript
Angular 数据请求的实现方法
May 07 Javascript
Bootstrap模态对话框中显示动态内容的方法
Aug 10 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
Aug 24 Javascript
vue 实现边输入边搜索功能的实例讲解
Sep 16 Javascript
JavaScript判断数组类型的方法
Oct 23 Javascript
Vue.js实现大屏数字滚动翻转效果
Nov 29 Javascript
javascript canvas API内容整理
Feb 16 Javascript
如何开发一个渐进式Web应用程序PWA
May 10 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
无线电的诞生过程
2021/03/01 无线电
常用的php ADODB使用方法集锦
2008/03/25 PHP
PHP命名空间(namespace)的使用基础及示例
2014/08/18 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
PHP asXML()函数讲解
2019/02/03 PHP
niceTitle 基于jquery的超链接提示插件
2010/05/31 Javascript
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
2015/03/27 Javascript
javascript制作的滑动图片菜单
2015/05/15 Javascript
jquery UI Datepicker时间控件的使用方法(加强版)
2015/11/07 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
原生js实现打字动画游戏
2017/02/04 Javascript
详解require.js配置路径的用法和css的引入
2017/09/06 Javascript
小程序外卖订单界面的示例代码
2019/12/30 Javascript
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
Python open读写文件实现脚本
2008/09/06 Python
用Python实现一个简单的线程池
2015/04/07 Python
Python简单遍历字典及删除元素的方法
2016/09/18 Python
python 类详解及简单实例
2017/03/24 Python
Python使用re模块实现信息筛选的方法
2018/04/29 Python
对python PLT中的image和skimage处理图片方法详解
2019/01/10 Python
pandas 选取行和列数据的方法详解
2019/08/08 Python
终于搞懂了Keras中multiloss的对应关系介绍
2020/06/22 Python
美国开幕式潮店:Opening Ceremony
2018/02/10 全球购物
采购内勤岗位职责
2013/12/10 职场文书
实习单位接收函模板
2014/01/10 职场文书
大学班级干部的自我评价分享
2014/02/10 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
水电维修专业推荐信
2014/09/06 职场文书
查摆问题整改措施
2014/10/24 职场文书
交警失职检讨书
2015/01/26 职场文书
2015年医院科室工作总结范文
2015/05/26 职场文书
Java对文件的读写操作方法
2022/04/29 Java/Android