练习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);
});