|
Posted on 2007-10-01 09:56 詩特林 閱讀(1915) 評論(0) 編輯 收藏 所屬分類: JavaScript
JavaScript中的數(shù)字排序方法
1.普通排序
var a = [0,null,10,11,null,20,100,null,-10,-1,111,2, null, 5];
a.sort();
console.log(a);
輸出結(jié)果:
[-1, -10, 0, 10, 100, 11, 111, 2, 20, 5, null, null, null, null]
2.一般排序
 function numberAsc(a, b) { return a - b;}
var a = [0,null,10,11,null,20,100,null,-10,-1,111,2, null, 5];
a.sort(numberAsc);
console.log("asc: ", a);
輸出結(jié)果:
asc: [-10, -1, null, null, null, 0, null, 2, 5, 10, 11, 20, 100, 111]
3.高級排序
 function numberAsc(a, b) { return a - b;}
function numberDesc(a, b) { return b - a;}
var a = [0,null,10,11,null,20,100,null,-10,-1,111,2, null, 5];
a.sort(numberAsc);console.log("asc: ", a);
a.sort(numberDesc)console.log("desc: ", a);
a.sort(numberAsc);console.log("asc: ", a);
a.sort(numberDesc)console.log("desc: ", a);
輸出結(jié)果
asc: [-10, -1, null, null, null, 0, null, 2, 5, 10, 11, 20, 100, 111]
desc: [111, 100, 20, 11, 10, 5, 2, 0, null, null, null, null, -1, -10]
asc: [-10, -1, null, null, null, null, 0, 2, 5, 10, 11, 20, 100, 111]
desc: [111, 100, 20, 11, 10, 5, 2, null, null, null, 0, null, -1, -10]
4.終極排序
 var ALMOST_ZERO = -0.00000001;
function numberAsc(a, b) {
var left = a != null ? a : ALMOST_ZERO;
var right = b != null ? b : ALMOST_ZERO;
return left - right;
}
輸出結(jié)果
asc: [-10, -1, null, null, null, null, 0, 2, 5, 10, 11, 20, 100, 111]
desc: [111, 100, 20, 11, 10, 5, 2, 0, null, null, null, null, -1, -10]
asc: [-10, -1, null, null, null, null, 0, 2, 5, 10, 11, 20, 100, 111]
desc: [111, 100, 20, 11, 10, 5, 2, 0, null, null, null, null, -1, -10]
|