Mik*_*378 4 javascript sorting lodash
假设这个数组:
var members = [
{firstName: 'Michael', weight: 2},
{firstName: 'Thierry', weight: 1},
{firstName: 'Steph', weight: 3},
{firstName: 'Jordan', weight: 3},
{firstName: 'John', weight: 2}
];
Run Code Online (Sandbox Code Playgroud)
我想按重量和每种重量排序,按firstNames排序(嵌套排序).
结果将是:
[
{firstName: 'Thierry', weight: 1},
{firstName: 'John', weight: 2},
{firstName: 'Michael', weight: 2},
{firstName: 'Jordan', weight: 3},
{firstName: 'Steph', weight: 3}
];
Run Code Online (Sandbox Code Playgroud)
我使用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();
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来使用Lodash 2.4.1实现它?
你可以链接两种:
_(members).sortBy('firstName').sortBy('weight').value()
Run Code Online (Sandbox Code Playgroud)