原生排序

let arr = [5,2,1,4,9,8]for(let i = 0 ; i < arr.length ; i ++) {             for(let j = 0 ; j < arr.length -1 ; j ++) {                 if(arr[j] > arr[j+1]){                     let num = arr[j]                     arr[j] = arr[j+1]                     arr[j+1] = num                     comeout.innerText = arr                 }             }       // 后果 1,2,4,5,8,9


ES6排序

sort() 办法是最弱小的数组办法之一。
默认排序程序为按字母升序。
应用数字排序,你必须通过一个函数作为参数来调用。
比拟函数两个参数a和b,a-b 升序,返回b-a 降序
留神: 这种办法会扭转原始数组!

// 升序 arr.sort(function(a,b){                return a - b            })         console.log(arr)// 后果 1,2,4,5,8,9// 降序arr.sort(function(a,b){                return b - a            })          console.log(arr)// 后果 9,8,5,4,2,1


依据数组中的某个属性排序

let arr_choice = [{id:1},{id:3},{id:2},{id:8},{id:6},{id:4}]// 升序arr_choice.sort(function(a,b){                return b.id - a.id            })          console.log(arr_choice)// 后果:[{"id":1},{"id":2},{"id":3},{"id":4},{"id":6},{"id":8}]            // 降序arr_choice.sort(function(a,b){                return b.id - a.id            })         console.log(arr_choice)// 后果:[{"id":8},{"id":6},{"id":4},{"id":3},{"id":2},{"id":1}]


依据多个属性排序

let arr_multi = [{id:1,age:10},{id:3,age:5},{id:2,age:6},{id:8,age:8},{id:6,age:5},{id:4,age:5}]// 升序arr_multi.sort(function(a,b){                // 默认依据年龄排序,年龄雷同则依照id排序                if(a.age==b.age){                    return a.id - b.id                }                return a.age - b.age            })      console.log(arr_multi)// 后果:[{"id":3,"age":5},{"id":4,"age":5},{"id":6,"age":5},{"id":2,"age":6},{"id":8,"age":8},{"id":1,"age":10}]         // 降序 arr_multi.sort(function(a,b){                // 默认依据年龄排序,雷同则依照id排序                if(a.age==b.age){                    return b.id - a.id                 }                return b.age - a.age             })            console.log(arr_multi)// 后果:[{"id":1,"age":10},{"id":8,"age":8},{"id":2,"age":6},{"id":6,"age":5},{"id":4,"age":5},{"id":3,"age":5}]