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 }