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

没弄清楚升序降序的问题

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Array对象 </title>

<script type="text/javascript">

   function sortNum(a,b) {

   return a - b;

   }  //实现升序功能?这样写为什么就能实现升序功能

   function asortNum(a,b) {

       return b - a;

   } //实现降序功能?为什么能起到降序作用。

var myarr = new Array("80","16","50","6","100","1");

document.write(myarr.sort(sortNum)+"<br/>");

document.write(myarr.sort(asortNum));

</script>

</head>

<body>

</body>

</html>

这段代码实现了数组元素的升序和降序排列。关键是sort里面的函数起到了作用。可是那个函数为什么是这样写的,只是定义了a和b,并没有定义a-b是大于0还是小于0  为什么就是升序了。。。。


正在回答

2 回答

想复杂了,a-b  不是a减b的意思,是a至b。b-a也是同理。我们英文字母 正常 排序是不是a,b,c,d,e,f,g。所以a至b就是正序,b-a就是倒序。 不关什么大于0,小于0的什么事。

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

卡兰尼克 提问者

谢谢谢谢 懂了
2016-11-22 回复 有任何疑惑可以回复我~

return a-b;
80-16=64;
80-50=30;
80-6-74;
80-100=-20;
80-1=79;
79,74,64,30,-20;
1,6,16,50,100;
/////////////
return b-a;
16-80=-64;
50-80=-30;
6-80=-74;
100-80=20;
1-80=-79;
20,-30,-64,-74,-79;
看的懂就看,看不懂就算了
100,50,16,6,1;

------------------------------------------------------来自问题评论 ------menghuanbaolei


意思是说a-b就是用第一个数减去其他数,结果由大到小排序,是不是结果越小,对应的数就越大。

所以79,74,64,30,-20 -------->1,6,16,50,100 是由小到大排序的

b-a的话其他数减去第一个数,结果有大到小排序,是不是结果越小,对应的数就越小

所以20,-30,-64,-74,-79  ---------------->100,50,16,6,1是由大到小排序的

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

没弄清楚升序降序的问题

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