数组对象多字段排序
作者:互联网
普通排序
// 普通排序 var arr1 = [1,2,10,7,8,3,20] // 从小到大 arr1.sort((a, b) => a - b) // 箭头函数单行代码 可省 return console.log(arr1) // [1,2,3,7,8,10,20] // 从大到小 arr1.sort((a, b) => b - a) console.log(arr1) // [20,10,8,7,3,2,1]
对象单字段排序
// 对象单字段排序 var arr2 = [ { age: 12, id: 20 }, { age: 12, id: 15 }, { age:8, id:20 } ] // 根据对象中的字段 age 从小到大排序 arr2.sort((a, b) => a.age - b.age) console.log(arr2) // [ { age: 8, id: 20 }, { age: 12, id: 20 }, { age: 12, id: 15 } ]
对象多字段排序
var arr2 = [ { age: 12, id: 20 }, { age: 12, id: 15 }, { age:8, id:20 } ] // 对象多字段排序 // 先根据age 从小到大 排序 age相同则根据id从小到大排序 arr2.sort((a, b) => { if(a.age == b.age){ return a.id - b.id } else { return a.age - b.age } }) console.log(arr2) // [ { age: 8, id: 20 }, { age: 12, id: 15 }, { age: 12, id: 20 } ]
完整代码
// 普通排序 var arr1 = [1,2,10,7,8,3,20] // 从小到大 arr1.sort((a, b) => a - b) // 箭头函数单行代码 可省 return console.log(arr1) // [1,2,3,7,8,10,20] // 从大到小 arr1.sort((a, b) => b - a) console.log(arr1) // [20,10,8,7,3,2,1] // 对象单字段排序 var arr2 = [ { age: 12, id: 20 }, { age: 12, id: 15 }, { age:8, id:20 } ] // 根据对象中的字段 age 从小到大排序 arr2.sort((a, b) => a.age - b.age) console.log(arr2) // [ { age: 8, id: 20 }, { age: 12, id: 20 }, { age: 12, id: 15 } ] // 对象多字段排序 // 先根据age 从小到大 排序 age相同则根据id从小到大排序 arr2.sort((a, b) => { if(a.age == b.age){ return a.id - b.id } else { return a.age - b.age } }) console.log(arr2) // [ { age: 8, id: 20 }, { age: 12, id: 15 }, { age: 12, id: 20 } ]
结果
标签:12,20,age,id,arr2,数组,排序,多字段 来源: https://www.cnblogs.com/smile-fanyin/p/16374228.html