我正在使用时间表列表,我希望显示按用户名分组的列表,以及他们提交的表单数量。
我能够接近这样做:
var collectionSorted = _.chain(timesheets)
.groupBy("UserName")
.toPairs()
.sortBy(1)
.value();
,在记录时,看起来像是一个很好的对,只包含UserName和该用户的时间表数组:
0 : Array[2]
1 : Array[2]
2 : Array[2] ...
在控制台中扩展,它们看起来像:
0 : "Chester Burnett"
1 : Array[4]
[then follows an array of four timesheet objects]
length : 4
我的问题是,我如何计算这些时间表,或使用length:4
属性来显示:
Chester Burnett 4
我对Lodash很新,所以解决方案可能很简单或明显,但对我而言,它既不是。
此外,我的问题与Count total with two criterias using Lodash没有什么不同,但该解决方案使用了_.pluck,这在Lodash中不再可用。
(由于这个原因,我发现很多在线Lodash例子很难学习。)
答案 0 :(得分:1)
如果没有看到原始数据,很难做出任何假设,但现在最简单的事情就是:
_.chain(timesheets)
.groupBy("UserName")
.toPairs()
.sortBy(1)
.map(function (pair) {
return [pair[0], pair[1].length];
})
.value();
P.S。 lodash中的_.pluck
被替换为接受字符串作为参数的_.map
。因此,与下划线的_.pluck(array, 'property')
进行比较 - 在lodash中它是_.map(array, 'property')