第一种方法:JS提供的sort方法
var arr = [896,13,88,155,"a",12,45];
arr.sort()
console.log(arr);//[12, 13, 155, 45, 88, 896, "a"]
这种方法,默认首字母排序,以阿萨科目表为规则,在我们使用过程中不太方便。
第二种方法:在第一种方法的基础上做了改善
用到了一个函数,然后在sort()中调用这个函数,根据这个函数的返回值决定是正序还是倒序。
var arr = [896,13,88,155,12,45];
//从小到大:
function sss(a,b){
return a-b;
}
arr.sort(sss);
console.log(arr);//[12, 13, 45, 88, 155, 896]
//从大到小
function sss(a,b){
return b-a;
}
arr.sort(sss);
console.log(arr);//[896, 155, 88, 45, 13, 12]
第三种方法:冒泡排序
这种方法的整体思想是拿着数组的数一次跟下一个数比,把较大的数,换到下标较大的位置,依次进行,以达到数组排序的效果。
注意:只适合百十千的数,过万效率会比较低
var arr = [4,3,7,5,8,1];
for(var j = 0;j<arr.length-1;j++){//比较的次数,需要比较length-1次,
for(var i = 0;i<arr.length-1-j;i++){//比较的数字,也是需要有length-1个数进行比较;但是之前比较过的,无需重复比较,所以需要-j
if(arr[i]>arr[i+1]){
var temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
}
console.log(arr);)//[1, 3, 4, 5, 7, 8]
咳咳,虽然这几种排序都不是太完美,但是也算是够用的了,啦啦啦~