javascript - 使用 Lodash 进行分组和计数
问题描述
我遇到了障碍,无法弄清楚如何计算字段的数量。我知道 _.countBy 和 _.size 可以通过 Lodash 获得,但由于某种原因无法得出正确的值。subgroup.items 数组包含格式如下的值:
{
store name: 'A',
sku title: '12345'
},
{
store name: 'A',
sku title: 09865
},
{
store name: 'A',
sku title: 63542
}
我的代码块是这样的:
subGroup.items = _.chain(subGroup.items)
.groupBy('store name')
.map(function(v, i) {
return {
store: i,
sku: _.reduce(
v,
function(res, val) {
return res + val['sku title'];
},
0
),
};
})
.value();
我怎样才能返回值,以便它显示每个商店有多少 sku 标题是这样的......
store name: 'A',
sku title: '3'
解决方案
如果你想要的只是一个计数,你应该能够使用v.length
而不是使用_.reduce(v,...)
var subGroup = {};
subGroup.items = [{
"store name": 'A',
"sku title": '12345'
},
{
"store name": 'A',
"sku title": 09865
},
{
"store name": 'A',
"sku title": 63542
}];
subGroup.items = _.chain(subGroup.items)
.groupBy('store name')
.map(function(v, i) {
return {
store: i,
sku: v.length
};
})
.value();
console.log(subGroup.items);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
推荐阅读
- azure-cosmosdb - 避免 - 由于系统缺少足够的缓冲区空间或队列已满,因此无法对套接字执行操作
- c# - 从工作表中输出,不重复
- r - 使用 rvest 抓取不在表中的数据
- ruby - 在ruby中将文本转换为粗体
- delphi - MSVC DLL 加载:是 __declspec(dllexport) 函数在没有 DllMain 的情况下直接加载的
- php - 为 foreach() 提供的参数无效:Yii2
- spring-mybatis - mybatis/xml 文件中的动态查询执行
- node.js - TypeError:未捕获的错误:将循环结构转换为 JSON
- html - 使用查询字符串滚动到 Div 无法正常工作
- javascript - CSS & JS - Excel 像表格的列调整大小