1. 程式人生 > >arr.sort的排序原理

arr.sort的排序原理

1.預設情況下根據字元編碼進行排序
var arr = [1,3,6,2,10]
arr.sort();//[1, 10, 2, 3, 6]

2.sort排序允許接受一個引數(函式),這個函式接受2個形參a,b,並且通過冒泡的方式比較。
返回值規則:

  1. 當返回值為負數時,那麼前面的數在前面,也就是不動
  2. 當返回值為正數時,那麼後面的數在前
  3. 為0,不動

升序

 arr.sort(function(a,b){
     if(a>b){
        //返回正數  b就和a位置互換,小的在前面了
          return a-b;
	}else{
	   //返回負數
          return a-b;
	}
})

既然都返回return a-b ,那麼升序函式簡寫方式:

arr.sort(function(a,b){
   return a - b;
})

降序

 arr.sort(function(a,b){
     if(a<b){
        //返回正數  b就和a位置互換,大的在前面了
          return b - a;
	}else{
	   //返回負數
          return b - a;
	}
})

既然都返回return b - a ,那麼降序函式簡寫方式:

arr.sort(function(a,b){
   return  b - a;
})