美文网首页
js 常用方法

js 常用方法

作者: 夏晶晶绿 | 来源:发表于2021-04-08 17:16 被阅读0次
    • 冒泡排序
    // 冒泡排序
    function bubbleSort(arr){
        for(var i=0;i<arr.length;i++){
            for(var j=0;j<arr.length-i-1;j++){
                if(arr[j]>arr[j+1]){
                    var tmp=arr[j]
                    arr[j]=arr[j+1]
                    arr[j+1]=tmp
                }
            }
        }
    }
    var arr=[3,2,5,1,4]
    bubbleSort(arr)
    console.log(arr)
    
    • 选择排序
    // 选择排序
    function selectSort(arr){
        for(var i=0;i<arr.length;i++){
            var minIndex=i
            for(var j=i;j<arr.length;j++){
                if(arr[minIndex]>arr[j]){
                    minIndex=j
                }
            }
    
            if(i!==minIndex){
                var tmp=arr[i]
                arr[i]=arr[minIndex]
                arr[minIndex]=tmp
            }
        }
    }
    var arr=[3,2,5,1,4]
    selectSort(arr)
    console.log(arr)
    
    • 插入排序
    function insertSort(arr){
        for(var i=1;i<arr.length;i++){
            var j=i
            var tmp=arr[j]
            while(j>0){
                if(tmp<arr[j-1]){
                    arr[j]=arr[j-1]
                }else{
                    break
                }
                j--
            }
            arr[j]=tmp
            
        }
    }
    var arr=[3,2,5,1,4]
    insertSort(arr)
    console.log(arr)
    
    • 快速排序
    function quickSort(arr){
        function innerQuickSort(innerArr){
            if(innerArr.length<=1)return innerArr
            
            var left=[]
            var right=[]
            var base=innerArr[0]
    
            for(var i=1;i<innerArr.length;i++){
                if(innerArr[i]<base){
                    left.push(innerArr[i])
                }else{
                    right.push(innerArr[i])
                }
            }
    
            var newLeft=innerQuickSort(left)
            var newRight=innerQuickSort(right)
    
            return [...newLeft,base,...newRight]
    
    
        }
    
        return innerQuickSort(arr)
    
    }
    var arr=[3,2,5,1,4]
    console.log(quickSort(arr))
    
    • 扁平数组转树结构
    let arr = [
        {id: 1, name: '部门1', pid: 0},
        {id: 2, name: '部门2', pid: 1},
        {id: 3, name: '部门3', pid: 1},
        {id: 4, name: '部门4', pid: 2},
        {id: 5, name: '部门5', pid: 4},
    ]
    function tree(pid,arr){
        return arr.filter(item=>item.pid===pid).map(item=>({...item,children:tree(item.id,arr)}))
    }
    

    相关文章

      网友评论

          本文标题:js 常用方法

          本文链接:https://www.haomeiwen.com/subject/nikvkltx.html