我有一个这样的数组:
var items = [
{name: 'popcorn', category: 'snacks'},
{name: 'nachos', category: 'snacks'},
...
{name: 'coke', category: 'drinks'}
];
我想得到一个按项目数量排序的类别列表(首先是大多数项目):
['snacks', 'drinks']
这是我的做法:
var categories = _.chain(items)
.countBy(function (i) { return i.category })
.pairs()
.sortBy(function (c) { return -c[1] })
.map(function (c) { return c[0] })
.value();
所以结果countBy
是一个对象,我必须使用pairs
它来将其转换为数组数组才能对其进行排序。
我想知道是否有更直接的方法来做到这一点?内置功能?