数组排序sort方法的使用
在普通的数字数组中使用:
sort(function(a,b) {
return a-b // 升序
// return b-a // 降序
})
let ary = [5,6,8,0,4]
console.log(ary.sort((a,b) => b-a))
// [ 8, 6, 5, 4, 0 ]
如果数组的元素不是普通的数字,而是对象,我们需要根据对象的某个属性值大小进行数组排序:
let arr = [
{
id: 1,
date: 12,
hobby: {
num: 8
}
},
{
id: 2,
date: 22,
hobby: {
num: 99
}
},
{
id: 3,
date: 99,
hobby: {
num: 18
}
},
{
id: 4,
date: 8,
hobby: {
num: 5
}
}
]
// 根据arr数组中的每一项的date大小排序
arr.sort((a,b) => b.date - a.date) // 降序
console.log(arr)
/* [ { id: 3, date: 99, hobby: { num: 18 } },
{ id: 2, date: 22, hobby: { num: 99 } },
{ id: 1, date: 12, hobby: { num: 8 } },
{ id: 4, date: 8, hobby: { num: 5 } } ]
*/
// 根据arr数组中元素的hobby对象的num属性值大小排序
arr.sort((a,b) => b.hobby.num - a.hobby.num)
console.log(arr)
/*[ { id: 2, date: 22, hobby: { num: 99 } },
{ id: 3, date: 99, hobby: { num: 18 } },
{ id: 1, date: 12, hobby: { num: 8 } },
{ id: 4, date: 8, hobby: { num: 5 } } ]
*/
总结 : 万变不离其宗