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最新动画教程+iso光盘下载
Jan 22 Javascript
js事件绑定快捷键以ctrl+k为例
Sep 30 Javascript
node.js中的http.request方法使用说明
Dec 14 Javascript
JavaScript常用小技巧小结
Dec 29 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
Jul 10 Javascript
Ajax的概述与实现过程
Nov 18 Javascript
Angular中的interceptors拦截器
Jun 25 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
Nov 22 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
Aug 17 Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
Dec 28 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
Aug 26 Javascript
Jquery如何使用animation动画效果改变背景色的代码
Jul 20 jQuery
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
thinkphp控制器调度使用示例
2014/02/24 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
2007/07/21 Javascript
javascript replace方法与正则表达式
2008/02/19 Javascript
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
JS实现模拟风力的雪花飘落效果
2015/05/13 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
实现音乐播放器的代码(html5+css3+jquery)
2015/08/04 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
2016/01/10 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
AngularJS 自定义指令详解及示例代码
2016/08/17 Javascript
AngularJS的Filter的示例详解
2017/03/07 Javascript
微信小程序页面生命周期详解
2018/01/31 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
2018/07/10 Javascript
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
express异步函数异常捕获示例详解
2020/11/30 Javascript
Python 私有函数的实例详解
2017/09/11 Python
Linux下多个Python版本安装教程
2018/08/15 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
Charlotte Tilbury英国官网:英国彩妆品牌
2017/05/26 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
什么是GWT的Entry Point
2013/08/16 面试题
会计专业大学生求职信范文
2014/01/28 职场文书
父母寄语大全
2014/04/12 职场文书
计算机网络专业自荐书
2014/06/09 职场文书
房地产端午节活动方案
2014/08/24 职场文书
中学生打架检讨书
2014/10/13 职场文书
2016年度先进班组事迹材料
2016/03/01 职场文书
关于React Native使用axios进行网络请求的方法
2021/08/02 Javascript
Mysql存储过程、触发器、事件调度器使用入门指南
2022/01/22 MySQL
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL
MYSQL常用函数介绍
2022/05/05 MySQL
Java中的Kotlin 内部类原理
2022/06/16 Java/Android