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:北京,成都,大连,上海
}
));