加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

js二维数组排序的简单范例代码

发布时间:2023-09-27 14:53:48 所属栏目:教程 来源:
导读:如下所示:

代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title> New Document </title>

<me

如下所示:
 
代码如下:
 
<!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/>");
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章