默认的sort排序依据是ASCⅡ码,所以从小到大排列遇到11可能排在个位数前面去了。
因此在数字进行排序时,需要添加函数入口点到sort函数中,就是改变sort函数的排序依据,通过不同的函数入口点,实现不同的排序效果。这里介绍一下冒泡排序和乱序。
var a1=[1,4,2,3,14];
alert("默认的排序结果:"+a1.sort());
alert("冒泡排序的结果"+a1.sort(myArraySortFun)); //输出1,14,2,3,4
alert("冒泡排序的结果"+a1.sort('Math.random()>0.5?1:-1;')); //输出乱序排列的数组
//冒泡排序
function myArraySortFun(a,b){
console.log("my Array sort");
return a-b;
}
拓展:
需要生成n个不重复的字符串时,先将备选字符存入字符串str中,先打乱str的排序,然后从中截取长度为n的子字符串即可。