对比
sortby
- 稳定排序,可保留集合序列原始顺序
- 仅仅支持升序,无排序方向,不支持降序,如果需要降序则需要额外调用 reverse() 函数
- 支持多字段排序
orderby
- 稳定排序,可保留集合序列原始顺序
- 支持指定升序和降序的排序方向
- 支持多字段排序
例子
sortby
单独调用
import _ from 'lodash'
var users = [{ 'user': 'fred', 'age': 48 },{ 'user': 'barney', 'age': 36 },{ 'user': 'fred', 'age': 40 },{ 'user': 'barney', 'age': 34 }
];_.sortBy(users, [function(o) { return o.user; }]);
// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]_.sortBy(users, ['user', 'age']);
// => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]
链式调用
import _ from 'lodash'
var users = [{ 'user': 'fred', 'age': 48 },{ 'user': 'barney', 'age': 36 },{ 'user': 'fred', 'age': 40 },{ 'user': 'barney', 'age': 34 }
];// 分组排序-升序
let agg = _.chain(users).countBy((item) => (item.user)).map((count,key)=>({count:count,key:key})).sortBy((o) => o.count).value() //升序// 分组排序-降序
let agg = _.chain(users).countBy((item) => (item.user))
.map((count,key)=>({count:count,key:key}))
.sortBy( 'count')
.reverse()
.value()
orderby
单独调用
import _ from 'lodash'
var users = [{ 'user': 'fred', 'age': 48 },{ 'user': 'barney', 'age': 34 },{ 'user': 'fred', 'age': 40 },{ 'user': 'barney', 'age': 36 }
];// Sort by `user` in ascending order and by `age` in descending order.
_.orderBy(users, ['user', 'age'], ['asc', 'desc']);
// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
链式调用
import _ from 'lodash'
var users = [{ 'user': 'fred', 'age': 48 },{ 'user': 'barney', 'age': 34 },{ 'user': 'fred', 'age': 40 },{ 'user': 'barney', 'age': 36 }
];// 分组排序
let agg = _.chain(users)
.orderBy( ['user', 'age'], ['asc', 'desc'])
.value()