国产探花免费观看_亚洲丰满少妇自慰呻吟_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.  }); 
?
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 怀远县| 西林县| 临澧县| 昭苏县| 满洲里市| 绥芬河市| 寿阳县| 大宁县| 贡嘎县| 扶沟县| 西藏| 珲春市| 金平| 湟源县| 敦煌市| 乌兰县| 海原县| 同德县| 托克逊县| 临洮县| 石楼县| 若尔盖县| 蓝山县| 贵溪市| 尼玛县| 巴彦县| 广东省| 贵德县| 乐都县| 防城港市| 新绛县| 岳普湖县| 静海县| 邯郸县| 镇平县| 滦南县| 怀来县| 牙克石市| 新蔡县| 灵宝市| 张家港市|