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

来源:7-22 数组排序sort()

qq_听风看雨此生梦醒_0

2016-03-31 09:26

<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>


写回答 关注

1回答

  • 谢沛豪
    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这是降序。  


    晨曦_002...

    学过强类型语言再学JavaScript感觉很多地方都别扭,比如sortNum函数是有参数的,但是使用的时候又不见有传参,真别扭...

    2016-04-24 14:33:07

    共 3 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题