javascript - 怎么理解数组排列中的sort
PHPz
PHPz 2017-05-19 10:11:03
[JavaScript讨论组]
        var fruit=[7,10,32,6,9,4];
        document.write(fruit+'<br>');
        fruit.sort(sortFun);
        document.write(fruit);
        function sortFun(ar1,ar2){
            if(ar1>ar2){
                return 1;
            }else if(ar1<ar2){
                return -1;
            }else{
                return 0;
            }
        }

这段代码是怎么让数组元素排列的呢? 求大神详细的讲解下 感谢感谢

PHPz
PHPz

学习是最好的投资!

全部回复(3)
巴扎黑

为了帮助理解,你可以试下直接调用sort方法:

var fruit=[7,10,32,6,9,4];
fruit.sort();

返回结果是:[10, 32, 4, 6, 7, 9]
而不是期待中的:[ 4, 6, 7, 9, 10, 32]

为什么会这样呢?
因为这是数组原型链上的sort()方法,即Array.prototype.sort()

如何深入研究这个sort()方法:
1.可以去看mdn文档https://developer.mozilla.org...
2.可以去看《javascript高级程序设计》,但是高设讲得不全
3.最暴力的方法是去看ECMA2015规范:http://www.ecma-international...
4.如果你实在觉得看得头疼了,可以看下我去年写的博客后再重复1,2,3步:http://www.jianshu.com/p/b50a...
希望能帮助到你...

世界只因有你
 fruit.sort(sortFun);

sort 数组的排序方法;
 用法:
        var arr=[]; 
        arr.sort(function(a,b){
            
        })
        比如从小到大:
        var arr=[9,5,6]; 
        arr.sort(function(a,b){
            return a-b;
        })
        
       fruit.sort(sortFun);中的sortFun就相当于arr.sort(function(a,b){})
       中的function(a,b){};
       if(ar1>ar2){
                return 1;
            }else if(ar1<ar2){
                return -1;
            }else{
                return 0;
            }就相当于return a-b;
为情所困

题主你可能需要这篇 https://developer.mozilla.org...

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号