sort()方法是数组自带的一种排序方法,默认情况下会将元素按照字符串进行比较。
1. 当元素为字符串时
将元素从字符串从第一位开始比较,第一位相同时比较后一位。
var arr = ["cb","a","g","cy"];
arr.sort();
console.log(arr); //["a","cb","cy","g"]
2.当元素为数字时
默认将数字元素当做字符串来进行比较。先比较第一位,第一位相同时在比较后一位。
var arr2 = [20,13,11,8,0,11];
arr2.sort();
console.log(arr2); //[0,11,11,13,20,8]
3. 控制sort()方法的排序方式
var arr2 = [20,13,11,8,0,11];
//按升序排列
arr2.sort(function(a,b){
//a,b表示相邻的两个元素
//若返回值>0,数组元素将按升序排列
//若返回值<0,数组元素将按降序排列
return a-b;
});
console.log(arr2); //[0,8,11,11,13,20]; 新数组按升序排列
//按降序排列
arr2.sort(function(a,b){
//a,b表示相邻的两个元素
//若返回值>0,数组元素将按升序排列
//若返回值<0,数组元素将按降序排列
return b-a;
});
console.log(arr2); //[20,13,11,11,8,0]; 新数组按降序排列
//随机排序
arr2.sort(function(a,b){
return Math.random()-0.5; //返回值的正负概率分别为50%,故升降序排列是随机的
});
console.log(arr2); //新数组随机排序