lodash - 具有数组长度的 lodash groupBy
问题描述
我有一个看起来像这样的原始数组:
const original = [
{
type: 'foo'
},
{
type: 'foo'
},
{
type: 'bar'
}
]
然后我通过 lodash groupBy 与 iteratee 运行它(val) => val.type
以获得:
{
bar: [{
type: "bar"
}],
foo: [{
type: "foo"
}, {
type: "foo"
}]
}
有没有一种方法可以将每个键的属性转换/减少到它们的 Array.length 中?
{
bar: 1,
foo: 2
}
解决方案
您可以使用_.countBy()
直接获得该结果:
const original = [{"type":"foo"},{"type":"foo"},{"type":"bar"}]
const result = _.countBy(original, 'type')
console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.js"></script>
要在对数组进行分组后获得相同的结果,请使用_.mapValues()
,并使用 获取每个子数组的长度_.size()
:
const original = [{"type":"foo"},{"type":"foo"},{"type":"bar"}]
const result = _.mapValues(
_.groupBy(original, 'type'),
_.size,
)
console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.js"></script>
推荐阅读
- python - Pyspark可为空的uuid类型uuid,但表达式的类型是字符变化
- javascript - 函数 - 显示与执行 console.log
- ubuntu - 当我包含 cs50 库时使用 make 编译时出现问题?
- javascript - JavaScript:如何检查数组中的元素是否是正确的长度
- encoding - Sybase 导出文件的编码
- python-3.x - 使用 Pandas ExcelWriter 附加到 Excel 文件时出现权限错误
- javascript - 我如何将对象数组动态聚合成组
- javascript - 为什么关闭动画时过渡不起作用?
- html - 如何安全地注入 HTML 代码(避免 HTML 注入)
- python - 打包python编写的代码时,如何在代码中添加谷歌驱动api的json凭证文件?