作为sort()方法的参数的比较函数(高程三第五章)

<script>
        var nums = [0,1,5,10,15];
        var nums2 = nums;
        nums.sort();
        console.log(nums);//0,1,10,15,5
        //为什么?数字字符串的比较并不是直接比较其中的数字大小,而是根据编码进行比较
        //"10"的第一位是"1",编码小于5(0~9的字符编码正好按照数字大小递增)
        //通过charCodeAt()方法来查看编码
        console.log("10".charCodeAt(0));//49
        console.log("5".charCodeAt(0));//53
        function compare(num1,num2){
            if(num1 < num2){
                return -1;
            } else if(num1 > num2){
                return 1;
            }else{
                return 0;
            }
        }//类似于冒泡排序? 如果第一个参数应该在第二个参数之前,则返回负数,使得更小的值被往前放置
        //将-1与1的位置交换,则可以实现降序排序
        nums2.sort(compare);
        console.log(nums2);//0,1,5,10,15
    </script>

 

posted @ 2019-02-25 15:17  林不渡  阅读(514)  评论(0编辑  收藏  举报