一.先看下以下一段JS代码(成功排序):
var arr = [0,1,1.3,4,5.4,66,13,44,3.2,55,38,12,124,91];
function compare(a,b){return (a-b);}
arr.join();
arr.sort(compare);
arr.join();
alert(arr);
二.疑问
“function compare(a,b){return (a-b);}”
为什么将2个参数相减就是有了比较功能,为什么?
建议看算法导论。
排序时比较数组中两个元素大小时,会调用比较函数,通常会做一个>=0之类的判断,来确定哪个值更大,或者相等。
没错,但是现在“{return (a-b);}”就解决比较了,这减式怎么理解?
@殷敏峰: 举个例子
你这里是 a-b;比如a=100;b=10;
结果是90
排序函数得到结果后立即做个判断 90>0 得到真,那么他就明白a大于b。
如果==0,那么就是a等于b
如果小于0,那么就是b大于a
所以一切情况都可以表示的很清楚
@xmodygetz:
明白了,其实可以繁写一下,为了明意。
因为js设计者就是这么设计的
...