国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript對象數組的排序處理方法

2024-05-06 16:24:46
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了JavaScript對象數組的排序處理方法,以實例形式分析了JavaScript對象數組的排序原理與相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
 

本文實例講述了JavaScript對象數組的排序處理方法。分享給大家供大家參考,具體如下:

javascript的數組排序函數 sort方法,默認是按照ASCII 字符順序進行升序排列。
arrayobj.sort(sortfunction);

參數:sortFunction

可選項。是用來確定元素順序的函數的名稱。如果這個參數被省略,那么元素將按照 ASCII 字符順序進行升序排列。

sort 方法將 Array 對象進行適當的排序;在執行過程中并不會創建新的 Array 對象。

如果為 sortfunction 參數提供了一個函數,那么該函數必須返回下列值之一:

負值,如果所傳遞的第一個參數比第二個參數小。
零,如果兩個參數相等。
正值,如果第一個參數比第二個參數大。

以上的方法在一維的排序還是很方便的,但像SQL語句中的ORDER BY 一樣的多鍵值排序由怎么做呢?

多維數組的多鍵值排序,則需要復雜一些,但不需要用循環解決。實際解決的道理是一樣的 。

數字:

以下的例子是將數字的多維數組按照第5列,第9列,第3列的順序排序,像SQL語句中的ORDER BY col5,col9,col7。數字的時候可以直接兩個項目相減,以結果作為返回值即可。
 

  1. <script language=javascript> 
  2.  var myArray = new Array(); 
  3.  for(var i=0;i<10;i++ ){ 
  4.  myArray[i]=new Array(); 
  5.  myArray[i][0]=Math.floor(Math.random()*10);  
  6.  myArray[i][1]=Math.floor(Math.random()*10); 
  7.  myArray[i][2]=Math.floor(Math.random()*10); 
  8.  myArray[i][3]=Math.floor(Math.random()*10); 
  9.  myArray[i][4]=Math.floor(Math.random()*10); 
  10.  myArray[i][5]=Math.floor(Math.random()*10); 
  11.  myArray[i][6]=Math.floor(Math.random()*10); 
  12.  myArray[i][7]=Math.floor(Math.random()*10); 
  13.  myArray[i][8]=Math.floor(Math.random()*10); 
  14.  } 
  15.  myArray.sort( 
  16.    function(x, y) { 
  17.     if(x[4]!=y[4]){ 
  18.       return x[4]-y[4]; 
  19.     } else if(x[8]!=y[8]){ 
  20.       return x[8]-y[8]; 
  21.     } else if(x[6]!=y[6]){ 
  22.       return x[6]-y[6]; 
  23.     } else { 
  24.       return 1; 
  25.     } 
  26.   } 
  27.   ); 
  28.  for(var i=0;i<myArray.length;i++ )...{ 
  29.  document.write(myArray[i].join(",") + "<br/>"); 
  30.  } 
  31. </script> 
 

字符:

字符的時候sortFunction中的項目不能像數字一樣直接相減,需要調用str1.localeCompare( str2 )方法來作比較,從而滿足返回值。以下是多維數組的第1,2列作排序的情況。
 

  1. function sortFunction(array) { 
  2.  return array.sort( function(x, y) ...{ 
  3.  return (x[0]==y[0])?(x[1].localeCompare(y[1])):(x[0].localeCompare(y[0])) 
  4.  }); 
?
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 资中县| 宿迁市| 墨玉县| 临武县| 宜都市| 夏河县| 涡阳县| 迭部县| 元朗区| 平邑县| 河北省| 高邮市| 晋江市| 内黄县| 政和县| 寻甸| 彭阳县| 松潘县| 汤原县| 玉门市| 茌平县| 临武县| 云龙县| 烟台市| 定西市| 观塘区| 蒲城县| 平谷区| 屯留县| 岗巴县| 渭南市| 湘潭县| 石阡县| 闽侯县| 六盘水市| 公安县| 隆昌县| 五华县| 板桥市| 宁化县| 蚌埠市|