<script>
var arr = [2,3,1,23];
arr.sort(comparison);
alert(arr.toString());
function comparison(value1,value2){
if(value1 < value2){
return -1;
}
else if(value1 > value2){
return 1;
}
else{
return 0;
}


}
</script>
希望可以解释的清楚点 谢谢 我不明白为什么这样可以移动位置 sort执行过程是怎么样的呢?

解决方案 »

  1.   

    sort自定义函数中,
    -1 表示 逻辑上所比较的对象 A<B
    0 表示 逻辑上所比较的对象 A=B
    1 表示 逻辑上所比较的对象 A>B
    sort根据返回值判断数组中两个元素的大小,来进行排序。
    如果数组元素是对象的话,对象原本不能比较,
    但可以通过指定比较对象的某个属性,obj1.x, obj2.x 或者更复杂的逻辑操作,表示对象的大小
    只要按不同情况返回这三个值,sort就会根据此比较来对对象进行排序。