_旺insist
2016-08-06 13:23
function sortNum(a,b) {
return a - b;
//升序,如降序,把“a - b”该成“b - a”
}
其实,就是这么规定的,虽然很难理解,但事实就是这样。
注意: 该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若返回值<=-1,则表示 A 在排序后的序列中出现在 B 之前。
若返回值>-1 && <1,则表示 A 和 B 具有相同的排序顺序。
若返回值>=1,则表示 A 在排序后的序列中出现在 B 之后。
function sortnum(a,b){
return a-b;
}
升序:
80-16=64; //>=1 a位于b的后面 80后移
80-50=30; //>=1 a位于b的后面 80后移
80-6-74;
80-100=-20; //<=-1 a位于b的前面
80-1=79;
79,74,64,30,-20;
1,6,16,50,100;
/////////////
降序:
function sortnum(a,b){
return b-a;
}
16-80=-64; //<=-1 a位于b的前面 即80位于16之前
50-80=-30; //<=-1 a位于b的前面 即80位于50之前
6-80=-74;
100-80=20; //>=1 a位于b的后面 即80位于100之后
1-80=-79;
20,-30,-64,-74,-79;
100,50,16,6,1;
可以把它理解成冒泡排序法,对于a和b,a大于b时,返回的值大于1,a排在b后面;a小于b,返回的值小于-1,a排在b前面,这是升序。改成”b-a“时,分析是一样的,不过变成了降序
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题