js数组排序的几种方法

// sort() 数组对象排序
var arr = [
         {name:"小恭",age:11},
         {name:"小发",age:3},
         {name:"小喜",age:12},
         {name:"小财",age:40}
         ];
console.log(arr);
console.log(arr[0]);
var compare = function(obj1,obj2){
    var val1 = obj1.age;
    var val2 = obj2.age;
    if(val1 < val2){
       return 1;
    }else if(val1 > val2){
       return -1;
    }else{
       return 0;
    }
}
console.log("数组对象排序:");
var sortArr = arr.sort(compare);
console.log(sortArr);
console.log(sortArr[0]);


//插入排序
var canArr = [0,4,2,6,7,8,2,14,57,8,99,0,45,32,12,1,1,1,1,45,0,9,8,7,6,5,4,3,2,115,67,68,56,55,43,21];
console.log(canArr);
var quchArr = canArr.distinct();
console.log(quchArr);
//插入排序
function insert(arr){  
 var s;   
  //升序
  for (var i = 1; i < arr.length; i++) { 
      for (var j = i; j > 0; j--) {   
      if (arr[j] < arr[j - 1]) {       
     s=arr[j];         
  arr[j]=arr[j-1];     
  arr[j-1]=s ;
  //console.log(arr);//可以打印出来每一个改变的步骤     
       }    
     }   
   }   
   //降序
 for (var i = 1; i < arr.length; i++) { 
     for (var j = i; j < 0; j--) {   
       if (arr[j] < arr[j - 1]) {       
     s=arr[j];         
  arr[j]=arr[j-1];     
  arr[j-1]=s ;
  //console.log(arr);//可以打印出来每一个改变的步骤     
      }          }   
   }  
  return arr;
}
console.log("插入排序:");
console.log(insert(quchArr));


//冒泡排序
function bubble(arr) { 
var s ;
// for (var i =0;i<arr.length;i++) { 
//   for (var j = 0; j < arr.length; j++) {
// if (arr[j] > arr[j + 1]){ 
// s = arr[j]; 
// arr[j]=arr[j+1]; 
// arr[j+1]=s; 
//
//    }
// }
for (var i =0;i<arr.length;i++) { 
  for (var j = 0; j < arr.length; j++) {
if (arr[j] < arr[j + 1]){ 
s = arr[j]; 
arr[j]=arr[j+1]; 
arr[j+1]=s; 

   }
}
 return arr;
}
console.log("冒泡排序:");

console.log(bubble(quchArr));


以上几种方法鄙人稍作总结,如有更好欢迎分享

猜你喜欢

转载自blog.csdn.net/qq_31249751/article/details/80769677