sort排序以及利用冒泡排序实现sort

默认情况下的sort是对字符编码(字符对应编码),进行从小到大排序,比如banan 会排在 cheer之前,但是这个没多大用处;

主要的用法是:

要对sort方法传进来一个比较函数(comparefunction),指定排序规则;

比较函数对相邻的两个元素进行比较,根据返回值的结果,如果前面的比后面的小,则位置不变,反之交换位置,类似于冒泡排序。

因为他取决于后面的具体的比较函数,所以无法保证排序时间和空间的复杂性。

1: 比较数组中的排序;

2: 按照对象的某一个属性进行排序;

var arr=[4,2,1,5,6];
arr.sort(function (a,b) {
   return  a-b;
});// [1,2,4,5,6];

var items= [value:34,value:45,value:1,value:4];
items.sort(function (a,b) {
    retun a.value-b.value;
});

等同于

items.sort(function(value){
    return function(a,b){
       return a[value]-b[value];
    }
})

利用冒泡排序实现sort

function sort(arr = [], fn){   
    for (var i = 0; i < arr.length - 1; i++) { 
        for (var j = 0; j < arr.length - 1 - i; j++) {
               if (fn(arr[j], arr[j + 1]) > 0) {
                        [arr[j],arr[j+1]] = [arr[j+1],arr[j]]                            
                   }
              }   
     }   
         return arr
} 
            
原文地址:https://www.cnblogs.com/jwenming/p/14435630.html