【发布时间】:2015-11-25 22:58:29
【问题描述】:
假设这个数组:
var members = [
{firstName: 'Michael', weight: 2},
{firstName: 'Thierry', weight: 1},
{firstName: 'Steph', weight: 3},
{firstName: 'Jordan', weight: 3},
{firstName: 'John', weight: 2}
];
我想按重量排序,对于每种重量,按名字排序(嵌套排序)。
结果是:
[
{firstName: 'Thierry', weight: 1},
{firstName: 'John', weight: 2},
{firstName: 'Michael', weight: 2},
{firstName: 'Jordan', weight: 3},
{firstName: 'Steph', weight: 3}
];
我使用Lodash 2.4.1 快速实现了这一点:
return _.chain(members)
.groupBy('weight')
.pairs()
.sortBy(function(e) {
return e[0];
})
.map(function(e){
return e[1];
})
.map(function(e){
return _.sortBy(e, 'firstName')
})
.flatten()
.value();
有没有更好的方法来使用 Lodash 2.4.1 实现它?
【问题讨论】:
标签: javascript sorting lodash