var a = [33, 4, 1111, 222];a.sort( ); // Alphabetical order: 1111, 222, 33, 4a.sort(function(a,b) { // Numerical order: 4, 33, 222, 1111 return a-b; // Returns < 0, 0, or > 0, depending on order });
function(a,b) 是个比较函数,它的功能是如何实现的?请高手讲讲,好吗
function(a,b) 是个比较函数,它的功能是如何实现的?请高手讲讲,好吗
默认a.sort()会按从小到大排序,如果想要从大到小排序,则a.sort(function(a,b){return b-a})是一种方法。
把这个方法作为排序的方法传递给sort()
for(var i=0;i<this.length;i++){
for(var j=i+1;j<this.length;j++){
if(fun(this[i],this[j])>0)
this.swap(i,j);//交换数组中i和j位置上的值
}
}
}
for(var i=0;i<this.length;i++){
for(var j=i+1;j<this.length;j++){
if(fun(this[i],this[j])>0)
this.swap(i,j);//交换数组中i和j位置上的值
}
}
return this;
}
Array.prototype.swap=function(i,j){
var b=this[i];
this[i]=this[j];
this[j]=b;
}var o=[3,2,1]
var os=o.sort(function(a,b){return b-a});
alert(os)
this.swap(i,j);//交换数组中i和j位置上的值
里改成
if(fun(this[i],this[j])<0)
this.swap(i,j);//交换数组中i和j位置上的值
源码揭秘啊 ,指出了array的sort/swap 函数的定义源码,谢谢。