数组的常用方法(4)--es3.0:烧脑小练习

练习23:给一个有序的数组乱序,而且每次的顺序还不一样。

sort()排序,乱序也得用sort();

Math.random()返回的是0-1之间的开区间的数。

那要产生负数,怎么办?

减一,减一不就减没了吗?减0.5是不是就完事了!

 

            var arr = [1,2,3,4,5,6,7];
			arr.sort(function(){
				return Math.random() - 0.5;
			});

每次刷新之后的arr是不是就乱序了,而且每次的顺序都不一样。

 

 

 

练习24:

 

            var xiaoming = {
				name : "xiaoming",
				age : 18,
				sex : "male",
				face : "handsome"
			}
			var xiaozhang = {
				name : "xiaozhang",
				age : 40,
				sex : "male",
				face : "amazing"
			}
			var xiaoliu = {
				name : "xiaozhang",
				age : 20,
				sex : "male",
			}
			var arr = [xiaoming,xiaozhang,xiaoliu];
			arr.sort(function(a,b){
				return a.age > b.age;	
			});

所以这个sort(),一定把他的精髓掌握!

 

 

练习25:

给定一个数组arr,按数组里面字符的长度排序。

arr = ["ac","bcd","cccc","dddd",

               "asdfkhiuqwe","asdoifqwoeiur","asdf"];

               arr.sort(function(a,b){

                    return a.length - b.length;

               });

这没啥难得,

 

要是让你按字节的长度来排序呢?

 

            function ret(str){
				var num = str.length;
				for(var i = 0;i < str.length;i ++){
					if(str.charCodeAt(i) > 255){
						num++;
					}
				}
				return num;
			}
			arr = ["ac","bcd","cccc","dddd",
			"asdfkhiuqwe","asdoifqwoeiur","asdf"];
			arr.sort(function(a,b){
				return ret(a) - ret(b);
			});

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/hdq1745/article/details/83868140