问答详情
源自:7-22 数组排序sort()

为什么函数sortNum能实现升序的功能?

<script type="text/javascript">
 function sortNum(a,b) {
 return a - b;
//升序,如降序,把“a - b”该成“b - a”
}
var myarr = new Array("80","16","50","6","100","1");
 document.write(myarr + "<br>");
 document.write(myarr.sort(sortNum));
</script>


提问者:qq_听风看雨此生梦醒_0 2016-03-31 09:26

个回答

  • 谢沛豪
    2016-03-31 09:40:19
    已采纳

    参数说明:


    1.如果不指定<方法函数>,则按unicode码顺序排列。

    2.如果指定<方法函数>,则按<方法函数>所指定的排序方法排序。

    myArray.sort(sortMethod);

    注意: 该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下: 

      若返回值<=-1,则表示 A 在排序后的序列中出现在 B 之前。
      若返回值>-1 && <1,则表示 A 和 B 具有相同的排序顺序。
      若返回值>=1,则表示 A 在排序后的序列中出现在 B 之后。

    ---------------------------------------------------------------------------------------------------------------------

    "80","16","50","6","100","1"

    这几个数。

    return a - b;    80-16 >= 1;    根据上面返回值规则,A在B之后,所以,80要在16后面,16,80这是升序。

    return b - a;    16-80 <= -1;    根据上面返回值规则,A在B之前,所以,80要在16前面,80,16这是降序。