var numberArray = [3, 6, 2, 4, 1, 5, 13];
//实现对该数组的大小顺序序排列,输出[1,2,3,4,5,6,13]
var arr2 = numberArray.sort(function(a, b) {
if(a > b) {
return 1;
} else if(a < b) {
return -1;
} else {
return 0;
}
});
console.log(arr2);//[1, 2, 3, 4, 5, 6, 13]
由于数组的sort()方法是根据字符串排序的,所以我们需要做一下判断。如果直接用var arr2=numberArray.sort();那么会是[1,13,2,3,4,5,6] 的效果;
比起之前的代码精简很多。
//外循环控制轮数(元素个数减一)
for(var i=0;i<numberArray.length-1;i++){
//开闭原则中的开关(默认是开启的)
var bool = true;
//内循环控制次数(元素个数减一)
for(var j=0;j<numberArray.length-1-i;j++){
//注意:1.怎么比较?(相邻的两个数比较) 2.什么情况下交换位置。(前边数大)
//如果判断条件和交换元素位置呢
if(numberArray[j] > numberArray[j+1]){
//交换位置
var temp = numberArray[j];
numberArray[j] = numberArray[j+1];
numberArray[j+1] = temp;
//不会的同学举手。(没有排序完毕呢)
bool = false;
}
}
//内循环中的if语句没有被执行
if(bool){
break;
}
}
console.log(numberArray);//[1, 2, 3, 4, 5, 6, 13];
终极版本:var arr2 = numberArray.sort(function(a, b) {
return a-b;
});
console.log(arr2);//[1, 2, 3, 4, 5, 6, 13];