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

不明白升降序是什么原理,这么改一下也可以,为什么?

<!DOCTYPE html>

<html>

<head>

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

<title>Array对象 </title>

<script type="text/javascript">

   function sortNum(b,a) {

       return a-b;

   }

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

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

</script>

</head>

<body>

</body>

</html>

结果是100,80,50,16,6,1,为什么会这样

提问者:qq_风_54 2015-11-08 16:21

个回答

  • mimaolu
    2015-11-08 20:41:25

    不明白?  这样写其实与原来的比较函数一样,只是现在的a和b指代的元素交换了。

  • 李晓健
    2015-11-08 20:28:14

    其实就是根据 

    function sortNum(b,a) {

           return a-b;

       }

    这个方法的返回值还判断是升序还是降序,这里的返回值只有三种情况,等于0,大于0,小于0;

    若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

    若 a 等于 b,则返回 0。

    若 a 大于 b,则返回一个大于 0 的值。