lodash中有多个keyBy版本? (共享键作为数组的组值)

时间:2018-09-09 11:20:46

标签: javascript object lodash

有没有一种简单的方法可以用lodash做到这一点?

_.something([{a: 3, b: 4}, {a: 3, b: 5}, {a: 10}], 'a')

=> { 3: [ {a: 3, b: 4}, {a: 3, b: 5 } ], 10: [{ a: 10 }]}

也就是说,将共享同一键的所有值分组为该键下的数组。

1 个答案:

答案 0 :(得分:1)

您可以使用_.groupBy来按给定键进行分组。

  

创建一个由键组成的对象,这些键由运行collectioniteratee的每个元素的结果生成。分组值的顺序由它们在collection中出现的顺序决定。每个密钥的对应值是负责生成密钥的元素数组。 iteratee用一个参数调用:(值)

console.log(_.groupBy([{ a: 3, b: 4 }, { a: 3, b: 5 }, { a: 10 }], 'a'));
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>