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 相关文章推荐
网页常用特效代码整理
Jun 23 Javascript
JavaScript 基础知识 被自己遗忘的
Oct 15 Javascript
cument.execCommand()用法深入理解
Dec 04 Javascript
jQuery随便控制任意div隐藏的方法
Jun 28 Javascript
jQuery内容过滤选择器用法示例
Sep 09 Javascript
百度多文件异步上传控件webuploader基本用法解析
Nov 07 Javascript
Javascript基础回顾之(二) js作用域
Jan 31 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
Sep 10 jQuery
JS实现将二维数组转为json格式字符串操作示例
Jul 12 Javascript
判断js数据类型的函数实例详解
May 23 Javascript
JS实现小星星特效
Dec 24 Javascript
小程序开发之模态框组件封装
Apr 23 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
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
Thinkphp关闭缓存的方法
2015/06/26 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
laravel框架学习笔记之组件化开发实现方法
2020/02/01 PHP
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
JS 作用域与作用域链详解
2015/04/07 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
javascript检测两个数组是否相似
2015/05/19 Javascript
js查看一个函数的执行时间实例代码
2015/09/12 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
2015/12/30 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
2016/12/27 Javascript
cordova入门基础教程及使用中遇到的一些问题总结
2017/11/14 Javascript
深入理解ES6之数据解构的用法
2018/01/13 Javascript
js+canvas实现验证码功能
2020/09/21 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
2019/04/25 Javascript
微信小程序如何使用云开发
2019/05/17 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
Javascript三种字符串连接方式及性能比较
2019/05/28 Javascript
详解javascript void(0)
2020/07/13 Javascript
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python中的引用和拷贝浅析
2014/11/22 Python
Tensorflow卷积神经网络实例进阶
2018/05/24 Python
如何利用Python模拟GitHub登录详解
2019/07/15 Python
Python操作多维数组输出和矩阵运算示例
2019/11/28 Python
python基于TCP实现的文件下载器功能案例
2019/12/10 Python
Python requests上传文件实现步骤
2020/09/15 Python
python 基于wx实现音乐播放
2020/11/24 Python
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
副职竞争上岗演讲稿
2014/05/12 职场文书
应届大专生自荐书
2014/06/16 职场文书
2015年学生管理工作总结
2015/05/26 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书