arr.sort()数组排序(比较asc码顺序)

244 阅读1分钟

1.数组大小排序  arr.sort()(function(){})

//1.必须写俩形参

//2.看返回值 1)当返回值为负数,那么前面的数放前

                    2)为正数,后面的数在前

                    3)为0,不动


例:


var arr=[20,2,10,3,4,8,9];arr.sort(function(a,b){//return a-b;升序//return b-a;降序});


返回结果

升序

降序


2.举一反三:按年龄排序


var xu = {name:"xu",age:18,sex:'female',face:"beautiful"}var su = {name:"su",age:28,sex:'male',face:"handsome"}var arr = [xu,su];arr.sort(function(a,b){return a.age-b.age;});


排序结果:


3.扩充:数组乱序

var arr =[1,2,3,4,5,6,7,8,9]; 

arr.sort(function(){ 

return Math.random()-0.5;  //Math.random(0,1)随机数

 });


4.按字节长度排序(升序)

1)先求字节长度

2)arr.sort(function(){});



function retByteslen(str){
				var num = str.length;
				for(var i = 0;i<str.length;i++){
					if(str.charCodeAt(i)>255){
						num++;
					}
			   }
			   return num;
			}
			
			var arr =['ba苏','a婷','abcdef'];
			arr.sort(function(a,b){
				return retByteslen(a) - retByteslen(b);
			});
			

输出结果