二维数组排序

工作中碰到需要对二维数组里面的数组的第一维数字大小进行排序,
直接使用sort();得到的结果是:[[1009,1], [356,2], [798,3
]],
而这显然是不正确的,查看文档得知sort()是可带参数的,
arrayObject.sort(sortby)  //可选。规定排序顺序。必须是函数。
  • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
  • 若 a 等于 b,则返回 0。
  • 若 a 大于 b,则返回一个大于 0 的值。
 


所以将sort()修改可以实现:
<html>
    <head>
        <title>二维数组排序</title>
        <script type="text/javascript">
            var numArr = [[1009,1], [356,2], [798,3]];
            numArr.sort(function(a,b){
                return a[0]-b[0];
            }); 
            document.write(numArr);

       //得到正确结果
[[356,2], [798,3], [1009,1]];
    </script> 
  </head>
  <body>
  </body>
</html>

 同样的,一维数组也会这样[22,12,5,7,19],sort后得到[12,19,22,5,7],也可以使用该方法解决


ps:基础不牢害死人啊!
 
原文地址:https://www.cnblogs.com/load/p/2740782.html