常用数组排序方法

  1. 冒泡排序方法
    获取第一个数字与第二个数字进行比较,如果第一个数字比第二个数字大 则与第二个数字交换位置
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})

Guess you like

Origin blog.csdn.net/qq_36229632/article/details/107689054