本帖最后由 rao3324180 于 2011-01-02 12:24:23 编辑

解决方案 »

  1.   

    sortNumber函数,用来定义数组中前后两个元素之间,到底哪个元素算大,哪个元素算小
    这个函数 要定义2个参数a,b, 如果函数返回正数,表示 a>b, 返回负数表示a<b,返回0表示相等
    sort方法根据此函数的返回值来决定排序顺序
      

  2.   

    Array的sort方法是一个Template模式 流程固定逻辑外放也就是 执行array.sort的时候 内部一般是这样
    Array.sort(mySort){
       for (var i=0;i<this.length-1;i++){
         for(var j=i+1;j<length;j++){
           var l=this[i],r=this[j];
           //这里是根据2个值的大小来交换位置 这个比较大小的逻辑是可以配置的
           
           if( !!mySort)  
              if(mySort(l,r))  //这里是自己的逻辑  
             //交换this[i] this[j]位置 这里省略
           }else if(r>l){      //这里是默认的逻辑
             //交换this[i] this[j]位置 这里省略         
           }
        }
      }
    }这样你调用sort的时候就可以吧自己的匹配逻辑放进去了