使用 Lodash 计算并显示每人的记录数
Count and display number of records per person using Lodash
我正在处理时间表列表,我想显示一个按用户名分组的列表,其中包含他们提交的时间表数量。
我可以通过这样做来接近:
var collectionSorted = _.chain(timesheets)
.groupBy("UserName")
.toPairs()
.sortBy(1)
.value();
这在记录时看起来很不错,只包含用户名和该用户的一组时间表:
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的例子都是这个原因很难学习。)
在没有看到原始数据的情况下很难做出任何假设,但您现在可以做的最简单的事情是:
_.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')
我正在处理时间表列表,我想显示一个按用户名分组的列表,其中包含他们提交的时间表数量。
我可以通过这样做来接近:
var collectionSorted = _.chain(timesheets)
.groupBy("UserName")
.toPairs()
.sortBy(1)
.value();
这在记录时看起来很不错,只包含用户名和该用户的一组时间表:
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的例子都是这个原因很难学习。)
在没有看到原始数据的情况下很难做出任何假设,但您现在可以做的最简单的事情是:
_.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')