js 常用方法

  • 冒泡排序
// 冒泡排序
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)}))
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容