lodash - conte duplicados e remova-os
Estou tentando usar o lodash para contar primeiro quantas duplicatas existem em uma matriz de objetos e remover a duplicata (mantendo o contador).
O código que tenho até agora parece funcionar, mas não consigo descobrir como mesclar os dois (desculpe, novo com o lodash).
Aqui está um código:
var array = [
{id: 1, name: "test"},
{id: 2, name: "test 2"},
{id: 3, name: "test 3"},
{id: 4, name: "test 4"},
{id: 1, name: "test "},
{id: 2, name: "test 2"},
]
// This finds the duplicates and removes them
result = _.uniqBy(array, 'id')
// this counts how many duplicates are in the array
count = _(result)
.groupBy('id')
.map((items, name) => ({ name, count: items.length }))
.value();
Gostaria de contar, depois remover mas manter a contagem, para que o resultado final basicamente me diga quantos produtos estão no pedido, mas mantendo o mesmo juntos e alterando a quantidade de 1 para 2.
Eu tentei com isso, mas não funciona:
result = _(result)
.groupBy('id')
.map((items, name) => ({ name, count: items.length }))
.uniqBy(result, 'name')
.value()
o que me dará algo assim:
result = [
{id: 1, name: "test", qty: 2},
{id: 2, name: "test 2", qty: 2},
{id: 3, name: "test 3", qty: 1},
{id: 4, name: "test 4", qty: 1}
]
Qualquer ajuda?
obrigado