1. 冒泡排序
var arr = [1,4,-8,-3,6,12,9,8];
function bubbleSort(arr){
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr.length-i-1; j++) {
if(arr[j] > arr[j+1]){
var c = arr[j];
arr[j] = arr[j+1];
arr[j+1] = c;
}
}
}
return arr;
}
console.log(bubbleSort(arr));
var arr = [1,4,-8,-3,6,12,9,8];
function normalSort(arr){
for (var i = 0; i < arr.length; i++) {
for (var j = i+1; j < arr.length; j++) {
if(arr[i] > arr[j]){
var c = arr[i];
arr[i] = arr[j];
arr[j] = c;
}
}
}
return arr;
}
console.log(normalSort(arr));
var arr = [1,4,-8,-3,6,12,9,8];
arr.sort((a,b) => {
return a-b;
})
console.log(arr);
4.进阶,对象属性排序
var arr = [
{name:'zopp',age:0},
{name:'gpp',age:18},
{name:'yjj',age:8}
];
function compare(用于判断的属性名){
return function(a,b){
var value1 = a[用于判断的属性名];
var value2 = b[用于判断的属性名];
return value1 - value2;
}
}
console.log(arr.sort(compare('age'))) //返回对象,age从小到大正向排序