思路
使用数组的 sort() 方法,传入一个比较属性值的回调函数,实现数组升序或者降序排列。
实现
/*
* @method
* @param {Array}arr 需要处理的对象数组
* @param {String}property 对象用来比较的属性
* @param {String}{'asc', 'des'}(默认‘升序’, ‘降序’) sortord 排序方式
* @return {Array} _arr 排序后的对象数组
* @desc 根据对象特定属性对对象数组进行指定排序
**/
const compareProp = (arr, property, sortord) => {
if (sortord === 'asc' || sortord === undefined) {
// 升序
_arr = arr.sort((obj1, obj2) => obj1[property] - obj2[property])
} else {
// 降序
_arr = arr.sort((obj1, obj2) => obj2[property] - obj1[property])
}
return _arr
}
let arr = [{a:3},{a:0},{a:1}]
console.log(compareProp(arr, "a"))
/*
[[object Object] {
a: 0
}, [object Object] {
a: 1
}, [object Object] {
a: 3
}]
*/
console.log(compareProp(arr, 'a','des'))
/*
[[object Object] {
a: 3
}, [object Object] {
a: 1
}, [object Object] {
a: 0
}]
*/
网友评论