法一:升序原理:循环嵌套即双向遍历,在从前往后的遍历过程中,如果前一个位子大于后一个位子,把前一个位子的值付给后一个位子,
在从后往前遍历过程中如果前一个值大于后一个的值,把前面的值付给后面,过程中把被赋值位子的值用变量接收在赋值,否则无效。
降序同理
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]