Несколько версий keyBy в lodash? (Значения групп разделяют ключ как массив) - PullRequest
0 голосов
/ 09 сентября 2018

Есть ли простой способ достичь этого с помощью 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 голосов
/ 09 сентября 2018

Вы можете использовать _.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>
...