js数组中的排序问题

<html>

<body>
    <script type="text/javascript">
    function sortNumber(a, b) {
        return a - b
    }

    var arr = new Array(6)
    arr[0] = "10"
    arr[1] = "5"
    arr[2] = "40"
    arr[3] = "25"
    arr[4] = "1000"
    arr[5] = "1"

    document.write(arr + "<br />")
    document.write(arr.sort(sortNumber))
    </script>
</body>

</html>

初学者。看不懂document.write(arr.sort(sortNumber))什么意思

阅读 5.4k
4 个回答

是这样的 js 的数组sort排序是可选一个比较函数作为参数的
函数的作用是什么呢?
默认情况

 var points = [40,100,1,5,25,10]; 
 points.sort()l //[1, 10, 100, 25, 40, 5]
以字符串大小比较,比较字符串上每个位的acsii码大小,第一位相同则比较第二位

引入比较函数的结果

 var points = [40,100,1,5,25,10]; 
 points.sort(function(a,b){return a-b}) //[1, 5, 10, 25, 40, 100]

引入比较函数 如果a-b<0;则从小到大排序;如果a-b>0;则从大到小排序

在既有数字 又有字母的情况下 还需要在讨论

document.write(arr.sort(sortNumber))
// 这个等于 
var arrSorted = arr.sort(sortNumber);
document.write(arrSorted)
// 这个叫嵌套调用 
// 方法1(方法2(参数))
// 嵌套调用先执行最内圈的 然后向外执行

查下js的sort()函数的相关知识点就知道了,网上一堆资料,讲得也很详细。。


建议:
如果对JS有兴趣,建议系统的学习下,强烈推荐《JavaScript高级程序设计3版》。在没有系统学习的前提下,遇到什么不懂问什么是一个很不好的学习习惯,只会让你觉得知识点很凌乱,越是后面越难学下去。没有结实的基础谈何高楼大厦。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏