文章目录
0.回顾sort()的用法
sort()方法是用于数组排序的,语法如下:array.sort()
,
使用sort()方法后会改变原数组的顺序(而不是生成一个新数组,同时原数组保持不变)
示例一:对字符数组进行排序
var myarr1=["h","e","l","l","o"];
myarr1.sort();
console.log(myarr1);//(5) ['e', 'h', 'l', 'l', 'o']
sort中没有参数时,会按照数组元素对应的ASCII码进行比较和排序
示例二:对数字数组进行排序
var myarr2=[9,5,1,4,6];
myarr2.sort();
console.log(myarr2);//(5) [1, 4, 5, 6, 9]
1.sort()无法对由两位数以上的数组元素构成的数组进行合理排序
示例
var myarr2=[10,25,3,8];
myarr2.sort();
console.log(myarr2);//10 25 3 8
出现原因和解决方法
因为sort()方法会首先会调用每个数组数据项的toString()方法,
转换成字符串以后再进行比较,在字符串中"25"<“3”,
解决方法是需要用到sort的参数,此时这个参数叫做比较函数
2.sort()的参数——比较函数
示例:使用比较函数将数字数组进行正确排序
var myarr2=[10,25,3,8];
var mycompare=function (x,y){
if(