关于字符串排序, 数字排序

    test.sort(compareFunc);
//    sort函数自定义排序,针对不规则,数字,字符串集合
//    * 比较函数
//    * @param {Object} param1 要比较的参数1
//    * @param {Object} param2 要比较的参数2
//    * @return {Number} 如果param1 > param2 返回 1
//    *                     如果param1 == param2 返回 0
//    *                     如果param1 < param2 返回 -1
//    */
    function compareFunc(param1,param2){
        //如果两个参数均为字符串类型
        if(typeof param1 == "string" && typeof param2 == "string"){
            return param1.localeCompare(param2);
        }
        //如果参数1为数字,参数2为字符串
        if(typeof param1 == "number" && typeof param2 == "string"){
            return -1;
        }
        //如果参数1为字符串,参数2为数字
        if(typeof param1 == "string" && typeof param2 == "number"){
            return 1;
        }
        //如果两个参数均为数字
        if(typeof param1 == "number" && typeof param2 == "number"){
            if(param1 > param2) return 1;
            if(param1 == param2) return 0;
            if(param1 < param2) return -1;
        }
    }
    var testArray = ["北京","上海","大连","成都"];
//    localeCompare()方法,针对字符串排序, 升序, 英文, 中文根据首字拼音
    document.write(testArray.sort(
            function compareFunction(param1,param2){
                return param1.localeCompare(param2);  //output:北京,成都,大连,上海
            }
    ));

 

posted @ 2016-09-21 14:02  不正经的CodeMonkey  阅读(3613)  评论(0编辑  收藏  举报