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调用Session的实现代码
Oct 29 Javascript
JS对象与JSON格式数据相互转换
Feb 20 Javascript
让你的博客飘雪花超出屏幕依然看得见
Jan 04 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
Aug 26 Javascript
JavaScript判断按钮被点击的方法
Dec 13 Javascript
jquery使用on绑定a标签无效 只能用live解决
Jun 02 Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
Sep 19 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
Feb 15 Javascript
纯js实现html转pdf的简单实例(推荐)
Feb 16 Javascript
javascript数据结构中栈的应用之符号平衡问题
Apr 11 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
Sep 30 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
Oct 27 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
星际中一些鲜为人知的详细资料
2020/03/04 星际争霸
利用PHP制作简单的内容采集器的代码
2007/11/28 PHP
Yii CFileCache 获取不到值的原因分析
2017/02/08 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
Jquery乱码的一次解决过程 图解教程
2010/02/20 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
js实现仿QQ秀换装效果的方法
2015/03/04 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
javascript实现起伏的水波背景效果
2016/05/16 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
vue获取form表单的值示例
2019/10/29 Javascript
python list语法学习(带例子)
2013/11/01 Python
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
Python函数的周期性执行实现方法
2016/08/13 Python
python实现聚类算法原理
2018/02/12 Python
Pycharm无法显示动态图片的解决方法
2018/10/28 Python
超简单使用Python换脸实例
2019/03/27 Python
python中bytes和str类型的区别
2019/10/21 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
Python多进程multiprocessing、进程池用法实例分析
2020/03/24 Python
Python MOCK SERVER moco模拟接口测试过程解析
2020/04/13 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
2020/11/18 Python
基于python模拟bfs和dfs代码实例
2020/11/19 Python
英国网络托管和域名领导者:Web Hosting UK
2017/10/15 全球购物
2014年应届大学生自我评价
2014/01/09 职场文书
校园餐饮创业计划书
2014/01/10 职场文书
品牌宣传方案
2014/03/21 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
学生保证书格式
2015/02/27 职场文书
监护人证明
2015/06/19 职场文书
在校学生证明格式
2015/06/24 职场文书
导游词之无锡丝业博物馆
2019/11/12 职场文书
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫