js基础算法02 - - 数组排序

02 数组排序

let arr = [
            { id: 1, name: '周瑜' },
            { id: 3, name: '王昭君' },
            { id: 2, name: '亚瑟' },
            { id: 1, name: '小乔' },
            { id: 2, name: '大桥' },
            { id: 3, name: '韩信' }
        ];

1.sort 排序

  function sort1(arr, key) {
            let result = []
            result = arr.sort((a, b) => {
                return a - b
            })
            return result
        }

2. 冒泡排序

 function sort2 (arr){
            for(let i =0 ; i < arr.length; i++){ //这里再看下+= ++x x++ 的区别
                for(let j = 0; j < arr.length -1; j++){ 
                    // console.log(arr.length) arr 长度是16
                    // console.log(i)   i 最大是15
                    // console.log(j)   j 最大是14
                    if(arr[j] > arr[j + 1]){
                        let temp = arr[j]
                        arr[j] = arr[j + 1]
                        arr[i] = temp
                    }
                } 
            }   
            return arr
        }

2.1 简单但会染的蠢b问题

首先看把最基础简单的 += i++ ++i 和for循环

    let i = 0 
        console.log(i ++)  //  output 0 ;   首先这里i++ 返回值还是0 
        console.log(i)     // output 1 ; 这里i自增1

        //go on 
        console.log(++ i )  //   output 2 ; 这里++ i 的返回值会直接加1
        console.log(i)  //  output 2  当然i 会自增 i++ 和++i 都是使得i自增1 
        
		// 愚蠢
		x += 1    ----- >  x = x + 1

3.选择排序

   function sort3 (arr) {
         
            for(let i =0 ; i < arr.length; i++){
                let indexMin = i
                for(let j = 0 ; j < arr.length; j++) {
                    if(arr[j] < arr[indexMax] ){
                        indexMax = j
                    }
                }
                if(indexMin !== i){
                    let temp = arr[i]
                    arr[i] = arr[indexMin]
                    arr[indexMin] = temp
                }

            }
            return arr
        }

// 6月10号 请添加图片描述
02休息 当日完结 03扁平化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值