Поскольку мы хотим удалить дубликаты, это должно привести к использованию # 2. По крайней мере, в следующий раз вы начнете идти по правильному пути!
аюсь использовать lodash, чтобы сначала посчитать, сколько дубликатов в массиве объектов и удалить дубликаты (сохраняя счетчик).
Код, который у меня есть, кажется, работает, но я не могу понять, как объединить их (извините, новинка с lodash).
Вот некоторый код:
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();
Я хотел бы посчитать, затем удалить, но сохранить счет, так что конечный результат в основном скажет мне, сколько товаров в заказе, но сохранил то же самое и изменил количество от 1 до 2.
Я попытался с этим, но это не работает:
result = _(result)
.groupBy('id')
.map((items, name) => ({ name, count: items.length }))
.uniqBy(result, 'name')
.value()
что даст мне что-то вроде этого:
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}
]
Любая помощь?
Спасибо