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("");
JavaScript数组排序原理与实现

被折叠的 条评论
为什么被折叠?



