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 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
js中设置元素class的三种方法小结
Aug 28 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
Oct 22 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
May 09 Javascript
js实现固定显示区域内自动缩放图片的方法
Jul 18 Javascript
使用BootStrap实现用户登录界面UI
Aug 10 Javascript
微信小程序微信支付接入开发实例详解
Apr 12 Javascript
AngularJS实现根据不同条件显示不同控件
Apr 20 Javascript
前端构建工具之gulp的配置与搭建详解
Jun 12 Javascript
基于Vue的ajax公共方法(详解)
Jan 20 Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
Aug 30 Javascript
vue 巧用过渡效果(小结)
Sep 22 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配置心得包含MYSQL5乱码解决
2006/11/20 PHP
根据中文裁减字符串函数的php代码
2013/12/03 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
php中curl使用指南
2015/02/05 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
jQuery 位置插件
2008/12/25 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
javascript使用smipleChart实现简单图表
2015/01/02 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
JS写谷歌浏览器chrome的外挂实例
2018/01/11 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
[07:57]2018DOTA2国际邀请赛寻真——PSG.LGD凤凰浴火
2018/08/12 DOTA
python抽象基类用法实例分析
2015/06/04 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
python查看模块安装位置的方法
2018/10/16 Python
将Django项目部署到CentOs服务器中
2018/10/18 Python
Django ORM 自定义 char 类型字段解析
2019/08/09 Python
Python函数装饰器原理与用法详解
2019/08/16 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
Python3开发环境搭建详细教程
2020/06/18 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
2020/07/15 Python
canvas 阴影和图形变换的示例代码
2018/01/02 HTML / CSS
工程现场管理求职自荐信
2013/10/02 职场文书
新学期班主任寄语
2014/01/18 职场文书
梅花魂教学反思
2014/04/25 职场文书
地球物理学专业推荐信
2014/09/08 职场文书
教师师德表现自我评价
2015/03/05 职场文书
食品安全责任书范本
2015/05/09 职场文书
护士旷工检讨书
2015/08/15 职场文书
六年级情感作文之500字
2019/10/23 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP