- 冒泡排序方法
获取第一个数字与第二个数字进行比较,如果第一个数字比第二个数字大 则与第二个数字交换位置
var arr = [1, 9, 4, 50, 49, 6, 3, 2];
for(var i = 0; i<arr.length-1 ;i++){
for(var j = i+1 ;j<arr.length;j++){
var val1 = arr[i];
var val2 = arr[j];
if(val1 > val2){
arr[i] = val2;
arr[j] = val1;
}
}
}
console.log(arr)
2.快速排序方法
在数组中间取一个值,用这个值跟数组内的元素进行比较如果小于则放一边,大于放另一边;然后进行合并再次重复对比;
var arr = [1, 9, 4, 50, 49, 6, 3, 2];
function test(arr){
if (arr.length <= 1) return arr;
var index = Math.floor(arr.length / 2);
var cur = arr.splice(index,1);
var left = [],right=[];
for(var i = 0;i<arr.length;i++){
if(cur>arr[i]){
left.push(arr[i])
}else{
right.push(arr[i])
}
}
return test(left).concat(cur, test(right));//通过递归,上一轮比较好的数组合并,并且再次进行比较
}
var newArry = test(arr)
console.log(newArry)
3.sort方法
var arr = [1, 9, 4, 50, 49, 6, 3, 2];
function test(){
return arr.sort(sortNumber);
}
function sortNumber(a, b){
return a - b; //倒序b-a
}
test();
4.排序数组中的对象
var arr = [
{
name:'苹果',
price:10
},{
name:'香蕉',
price:8
},{
name:'菠萝',
price:12
}
]
arr.sort((a,b)=>{
return a.price-b.price})