萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> js二維數組排序的簡單示例代碼

js二維數組排序的簡單示例代碼

 本篇主要是對js二維數組排序的簡單示例代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助

如下所示:    代碼如下: <!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>  
copyright © 萬盛學電腦網 all rights reserved