1. 程式人生 > >JavaScript中用sort方法進行二維陣列排序

JavaScript中用sort方法進行二維陣列排序

JavaScript中陣列排序方法

用到的最多的當然是封裝好的sort()方法了 
一:sort()方法怎麼使用? 
sort方法並不像我們想的那麼容易使用,不是單純的arr.sort()就行了,需要我們定義裡面的回撥函式!因為sort()方法預設情況下按照升序排列陣列項,sort()方法會呼叫toString()轉型方法,然後比較得到的字串,即使我們比較的是數字,他也會把數字轉為字串以後再排序。 
請看下面例子:

var arr1 = [0, 1, 3, 10, 16, 5, 9, 0, 3];
var arr2 = ['bangbang', 'father', 'mother', 'brother'
, 'sister', true, false, 0, 1, 6, 13]; console.log(arr1.sort()) //很明顯,這樣不是我們要的結果,[ 0, 0, 1, 10, 16, 3, 3, 5, 9 ] console.log(arr2.sort()); //[ 0,1,13,6,'bangbang','brother',false,'father','mother','sister',true] //傳入自定義回撥函式之後 function ascend(a,b){ return a-b; } //降序排列 function descend(a,b){ return b-a; } console
.log(arr1.sort(ascend)); //[ 0, 0, 1, 10, 16, 3, 3, 5, 9 ] console.log(arr1.sort(descend)); //[ 16, 10, 9, 5, 3, 3, 1, 0, 0 ]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

二:用sort方法進行二維陣列的排序。

var arr1 = [[4,5,7],[11,3,6,100,77],[12,9,12,10],[3,1,2,99,22]];
function ascend(x,y){
    return x[3] - y[3];  //按照陣列的第4個值升序排列
}
function descend
(x,y)
{ return y[0] - x[0]; //按照陣列的第1個值升序排列 } console.log(arr1.sort(ascend)); console.log(arr1.sort(descend));
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

當然還有其他的排序方法,再次我只說封裝好的,其實排序有很多種,關鍵看你怎麼使用! 
三:順便什麼是reverse()方法?怎麼使用? 
reverse方法會反轉陣列項的順序,請看如下示例:

var arr1 = [0, 1, 3, 10, 16, 5, 9, 0, 3];
var arr2 = ['bangbang', 'father', 'mother', 'brother', 'sister', true, false, 0, 1, 6, 13];
console.log(arr1.reverse());//[ 3, 0, 9, 5, 16, 10, 3, 1, 0 ]
console.log(arr2.reverse());//[ 13,6,1,0,false,true,'sister','brother','mother','father','bangbang' ]