vue實現數組排序,常用的幾種方法


總結一下js常用的排序,不然老是找不到,滿足開發使用就行了

1,sort排序

  sort常規使用

    var arry = [9,5,6,7,5,6,3,1,0]
    arry.sort() //  [0, 1, 3, 5, 5, 6, 6, 7, 9]

  

    var arry = ['CBC','BBC','DBC','ABC','KBC','EBC','MBC']
    arry.sort() //  ['ABC', 'BBC', 'CBC', 'DBC', 'EBC', 'KBC', 'MBC']

  注意:sort 默認會使用字符串的第一個字符來排序,當一個相等時,使用第二個以此類推,所以 ‘10’ 小於 ‘8’

    var arry = ['10','8','4','3','20','0','12','11']
    arry.sort() //  ['0', '10', '11', '12', '20', '3', '4', '8']

  sort進階(對象排序):1:數組排序

  var points = [
        {name:'KBC',data:9},
        {name:'CBC',data:8},
        {name:'BBC',data:6},
        {name:'EBC',data:1},
        {name:'MBC',data:5},
        {name:'ABC',data:7}
    ];
    points.sort(function(a, b){
        return a.data - b.data
    })

 

   2,字符串排序 (如果不區分大小寫就在sort方法name之后加上 .toUpperCase() 方    var points = [

    var points = [    
    {name:'KBC',data:9}, {name:'CBC',data:8}, {name:'BBC',data:6}, {name:'EBC',data:1}, {name:'MBC',data:5}, {name:'ABC',data:7} ]; points.sort(function(a, b){ return a.name > b.name?1:-1 // return a.name.toUpperCase() > b.name.toUpperCase()?1:-1
  })

  

 

 2.快速排序 

    function quickSort(arr){
        if(arr.length<=1){ // 長度小於等於1 返回自己
            return arr
        }
        let centerIndex = Math.floor(arr.length/2) // 中間index
        let centerData = arr.splice(centerIndex,1)[0] // 中間index 對應的 之,並從arr中剔除
        let letArry = []
        let rightArry = []
        for(let i=0;i<arr.length;i++){
            if(arr[i]<centerData){ // 小於中間值放左數組 否則放右數組
                letArry.push(arr[i])
            }else{
                rightArry.push(arr[i])
            }
        }
        return quickSort(letArry).concat([centerData],quickSort(rightArry)) // 左數組快排后和中間值,右數組拼接
    }
    let arr = [1,5,6,2,4,8,7,9,6,3,2,2,0]
    console.log(quickSort(arr))

3.冒泡排序

    function maopao(arr){
        for(let i=0;i<arr.length-1;i++){
            for(let j=i;j<arr.length;j++){
                if(arr[i]>arr[j]){
                    let changeData = arr[i]
                    arr[i] = arr[j]
                    arr[j] = changeData
                }
            }
        }
        return arr
    }
    let arr = [1,5,6,2,4,8,7,9,6,3,2,2,0]
    console.log(maopao(arr))

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM