普通排序

// 普通排序
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 } ]

结果

数组对象多字段排序_字段