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

Ste*_*ett 8 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 }]}
Run Code Online (Sandbox Code Playgroud)

也就是说,将共享相同键的所有值组合在一起作为该键下的数组。

Nin*_*olz 9

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

collection创建一个由运行thru每个元素的结果生成的键组成的对象iteratee。分组值的顺序由它们出现的顺序决定collection。每个键对应的值是负责生成键的元素数组。使用iteratee一个参数调用:(value)

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

  • 太完美了,谢谢。在doco中很难找到你需要的功能。 (2认同)