原生 javascript 数组排序
function order(arr){
var len=arr.length;
var max=0; // 定义一个变量max,用于保存数组中的最大值。
var num=0; // 定义一个变量num,用于保存数组中最大值的位置。
var mid=0; // 定义一个变量mid,用于交换最大值和最后一个值。
for(var i=len-1;i>0;i--){
max=arr[0];
for(var j=0;j<=i;j++){
if(max<=arr[j]){
max=arr[j]; // 获取数组中最大值
num=j;
}
}
mid=arr[i]; // 将数组最后一个元素的值赋给中间变量;
arr[num]=mid; // 将中间变量赋给最大值的元素;
arr[i]=max; // 将最大值赋给数组最后一个元素;
}
return arr;
}
操作方法
- 01
获取数组中最大的元素: var arr=[1,2,4,6,3,7,5]; var max=0; for(var i=0;i<arr.length;i++){ if(max<=arr[i]){ max=arr[i]; } }
- 02
把最大值放到数组最后: 定义一个中间变量来交换最大值和最后一个元素的值; 定义一个变量来保存最大值所在的位置; var arr=[1,2,4,6,3,7,5]; var len=arr.length; var max=0; var num=0; var mid=0; for(var i=0;i<len;i++){ if(max<=arr[i]){ max=arr[i]; num=i; } } mid=arr[len-1]; // 将数组最后一个元素的值赋给中间变量; arr[num]=mid; //将中间变量赋给最大值的元素; arr[len-1]=max; // 将最大值赋给数组最后一个元素; // [1,2,4,6,3,5,7];
- 03
使用第二重循环来执行第2步: var arr=[1,2,4,6,3,7,5]; var len=arr.length; var max=0; var num=0; var mid=0; for(var i=len-1;i>0;i--){ max=arr[0]; for(var j=0;j<=i;j++){ if(max<=arr[j]){ max=arr[j]; // 获取数组中最大值 num=j; } } mid=arr[li]; arr[num]=mid; arr[i]=max;
- 04
把第3步封装在函数中: function order(arr){ var len=arr.length; var max=0; // 定义一个变量max,用于保存数组中的最大值。 var num=0; // 定义一个变量num,用于保存数组中最大值的位置。 var mid=0; // 定义一个变量mid,用于交换最大值和最后一个值。 for(var i=len-1;i>0;i--){ max=arr[0]; for(var j=0;j<=i;j++){ if(max<=arr[j]){ max=arr[j]; // 获取数组中最大值 num=j; } } mid=arr[i]; // 将数组最后一个元素的值赋给中间变量; arr[num]=mid; // 将中间变量赋给最大值的元素; arr[i]=max; // 将最大值赋给数组最后一个元素; } return arr; }