为了账号安全,请及时绑定邮箱和手机立即绑定

为什么函数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>


正在回答

1 回答

参数说明:


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这是降序。  


1 回复 有任何疑惑可以回复我~
#1

qq_听风看雨此生梦醒_0 提问者

非常感谢!
2016-03-31 回复 有任何疑惑可以回复我~
#2

Hey_kevin

我把80改为8 ,return a-b;8-16<=-1;根据上面返回值规则,A在B之前,所以,8要在16前面,8,16这是升序。 但实际情况是8是在16后面
2016-04-17 回复 有任何疑惑可以回复我~
#3

晨曦_0026

学过强类型语言再学JavaScript感觉很多地方都别扭,比如sortNum函数是有参数的,但是使用的时候又不见有传参,真别扭...
2016-04-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信