`

js 排序 sort

    博客分类:
  • js
 
阅读更多
varmyarray=newArray(8,6,7,9,1,-1,4);
myarray.sort();
输出myarray是:-1,1,4,6,7,8,9
 
原理模拟:
<script type="text/javascript">    
  <!--    
    var myarray = new Array(8,6,7,9,1,-1,4);    
    var myarray1 = new Array(8,6,7,9,1,-1,4);    
    var sortAsc = function(x,y) { return x-y; };    
    var sortDesc = function(x,y) { return y-x; };    
    Array.prototype.st=function(fn){    
        var t;    
        fn=fn||function(x,y){return x-y};    
        for(var i=0;i<this.length;i++){    
            for(var j=i;j<this.length;j++){    
                if(fn(this[i],this[j])>0){    
                    t=this[i];    
                    this[i]=this[j];    
                    this[j]=t;    
                }    
            }    
        }    
    }    
    myarray.st();    
    alert("默认升序排列:"+myarray);    

    myarray.st(sortDesc);    
    alert("降序排列:"+myarray);    

    myarray.st(sortAsc);    
    alert("升序排列:"+myarray);    
       
    myarray1.sort(function(){return 1});  //注:js默认的sort对此排序结果跟这个不一样,其排序方式还暂不理解    
    alert("逆序排列:"+myarray1);       
       
  //-->    
  </script> 
 
 
function doOrderList(){
		var ulList = $("ul[order-time]");
		ulList.sort(function(a,b){
			var $a = $(a),$b = $(b);
			var atime = $a.attr('order-time')
			,btime = $b.attr('order-time');
			if(atime>btime) return -1;
			if(atime<btime) return 1;
			return 0;
		});
		$('#todo_hidden').empty().append(ulList);

		if(ulList.length < 1){
			bizWidget.html("");
			var wcontain = bizWidget.parents(".w-cnt-contain");
			wcontain.slideUp(500);
			var target = wcontain.siblings(".w-title:first").find(".desc-arrow");
			target.addClass("arrowDown");
		} else if(ulList.length<=4){
			bizWidget.append(ulList);
		} else {
			bizWidget.append($("ul[order-time]:lt(4)"));
		}
		$(".count-to-do").empty().append("");
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics