数组排序 js
介绍两种方法进行数组排序。
1. sort();
var a=[5,4,6,3,9,2,0,1];
a.sort((a,b)=>a-b) //正常顺序或者直接 a.sort();
a.sort((a,b)=>b-a) //排序后倒序
2. 冒泡排序
var a=[5,4,6,3,9,2,0,1];
第一步先考虑把最大的放到最后或者第一,
第一次遍历数组,把最大的放到最后面去
for(var i = 0; i<a.length-1; i++){
if(a[i]>a[i+1]){
var b = a[i];
a[i] = a[i+1];
a[i+1] = b;
}
}
上述循环是把最大值放到最后,既然执行一次就可以把最大值排到最后那么我循环当前数组个数那自然就完成了倒序
完整代码
var a=[5,4,6,3,9,2,0,1];
for(var k = 0; k<a.length; k++){
for(var i = 0; i<a.length-1;i++){
if(a[i]>a[i+1]){
var num = a[i];
a[i] = a[i+1];
a[i+1] = num;
}
}
}
3. 双重for循环实现排序
var a=[5,4,6,3,9,2,0,1];
function sort(arr){
var newArr = [arr[0]];
for(var i = 1; i<=arr.length; i++){
var nl = newArr.length;
for(var j=0;j<=nl -1 ; j++){
if ( newArr[j]>= arr[i]){
newArr.splice(j,0,arr[i]);
break;
}else if(j == nl-1){
newArr.push(arr[i])
}
}
}
return newArr;
}
sort(a)