posts - 309, comments - 6940, trackbacks - 0, articles - 3
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

JavaScript中的数字排序方法

Posted on 2007-10-01 09:56 诗特林 阅读(1749) 评论(0)  编辑  收藏 所属分类: JavaScript
JavaScript中的数字排序方法

1.普通排序
var a = [0,null,10,11,null,20,100,null,-10,-1,111,2null5];
 a.sort();
 console.log(a); 

 输出结果:
[-1-10010100111112205nullnullnullnull]

2.一般排序
function numberAsc(a, b) {     return a - b;}
  var a = [0,null,10,11,null,20,100,null,-10,-1,111,2null5];
       a.sort(numberAsc);
       console.log(
"asc: ", a);

 输出结果:
asc: [-10-1nullnullnull0null25101120100111]

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,2null5];
      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);

 输出结果
asc: [-10-1nullnullnull0null25101120100111]
    desc: [
111100201110520nullnullnullnull-1-10]
    asc: [
-10-1nullnullnullnull025101120100111]
    desc: [
11110020111052nullnullnull0null-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;
      }

 输出结果
asc: [-10-1nullnullnullnull025101120100111]
    desc: [
111100201110520nullnullnullnull-1-10]
    asc: [
-10-1nullnullnullnull025101120100111]
    desc: [
111100201110520nullnullnullnull-1-10]

只有注册用户登录后才能发表评论。


网站导航: