arrayObject.sort(sortby);
sortby为一个函数,内有两参数,该函数返回两参数的差。
arr=[1,2,4,5,6]
var sortby=function(a,b){
return a-b;
}
arr.sort(sortby)
//sort内部采用O(n^2)的冒泡排序,当sortby的返回值大于0,交换位置。
//冒泡排序
//升序
function bubbleSort(arr) {
var i = arr.length, j;
var tempExchangVal;
while (i > 0) {
for (j = 0; j < i - 1; j++) {
if (arr[j] > arr[j + 1]) {
tempExchangVal = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tempExchangVal;
}
}
i--;
}
return arr;
}
//此时再看
arr=[1,2,4,5,6]
var sortby=function(a,b){
return a-b;
//执行冒泡排序,a为当前元素,b为a的下一个元素。返回值大于0交换。
//因此返回a-b时为升序,返回b-a时为降序
}
arr.sort(sortby)
下面按照数组中对象的某一个属性值进行排序
var arr = [
{name:'zopp',age:0},
{name:'gpp',age:18},
{name:'yjj',age:8}
];
function compare(property){
return function(a,b){
var value1 = a[property]; //a为当前元素
var value2 = b[property]; //b为a的下一位元素
return value1 - value2;
}
}
console.log(arr.sort(compare('age'))) //age依此为 0 8 18