法一:升序原理:循环嵌套即双向遍历,在从前往后的遍历过程中,如果前一个位子大于后一个位子,把前一个位子的值付给后一个位子,
在从后往前遍历过程中如果前一个值大于后一个的值,把前面的值付给后面,过程中把被赋值位子的值用变量接收在赋值,否则无效。
降序同理
function getNew(a){
for (var i = 0; i < a.length; i++) {
for (var j= a.length - 1; j>= 0; j--) {
if(a[i]>a[i+1]){
var elem=a[i];
a[i]=a[i+1];
a[i+1]=elem;
}else if(a[j-1]>a[j]){
var sm=a[j];
a[j]=a[j-1];
a[j-1]=sm;
}
}
}
console.log(a);
}
getNew([6,2,3,1,10,8]);//[1, 2, 3, 6, 8, 10]
法二:自定义比较器(匿名函数),简单暴力快捷
function getNew(a){
a.sort(function(a,b){return a-b});//升序
//a.sort(function(a,b){return b-a});降序
console.log(a);
}
getNew([6,2,3,1,10,8]);//[1, 2, 3, 6, 8, 10]