有没有一种简单的方法可以用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 }]}
也就是说,将共享同一键的所有值分组为该键下的数组。
答案 0 :(得分:1)
您可以使用_.groupBy
来按给定键进行分组。
创建一个由键组成的对象,这些键由运行
collection
到iteratee
的每个元素的结果生成。分组值的顺序由它们在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>