169 похожих чатов

Всем привет, как можно сгруппировать одинаковые элементы в массиве? Сравнивать их

можно по нескольким полям (id, title например) и из 2-ух одинаковых элементов 1-ин из них удалять, а 2-ому увеличить поле count на единицу удалённого.
Что-то я уже голову сломал с этим

11 ответов

6 просмотров

дайте пример входного массива, но предупреждаю, советовать буду редусик

Максим-Вольский Автор вопроса
Ксяу Ка
дайте пример входного массива, но предупреждаю, со...

var arr = [{ id: 1, title: 'A', count: 1 }, { id: 2, title: 'B', count: 1 }, { id: 3, title: 'C', count: 1 },{ id: 2, title: 'B', count: 3 },{ id: 1, title: 'A', count: 6 },]

Максим-Вольский Автор вопроса
Ксяу Ка
дайте пример входного массива, но предупреждаю, со...

я нашёл пример с редьюсом, но он там группирует в массивы опять их

Максим Вольский
var arr = [{ id: 1, title: 'A', count: 1 }, ...

т.е. увеличивать count нужно на том дубликате, где он больше, а убирать те дубликаты, где count меньше?

Максим-Вольский Автор вопроса
Ксяу Ка
т.е. увеличивать count нужно на том дубликате, где...

ну это не важно, можно по первому вхождению. Главное убрать одинаковые элементы. Чтобы остался всего 1 и у его поля count была сумма count всех остальных Грубо говоря есть 2 одинаковых элемента с id: 1. Второй элемент удаляем, а первому прибавляем count удалённого Надеюсь, я понятно выражаюсь

Максим Вольский
ну это не важно, можно по первому вхождению. Главн...

а тупанула( на единицу удаленного формулировка.. да понятно канеш

Максим Вольский
var arr = [{ id: 1, title: 'A', count: 1 }, ...

arr.reduce((acc,el)=>acc.find(({id})=>id===el.id)?acc:(acc.push({...el,count:0}),arr.forEach(({id,count})=>(id===el.id&&(acc[acc.length-1].count+=count))),acc),[]); xD

Максим-Вольский Автор вопроса
Ксяу Ка
arr.reduce((acc,el)=>acc.find(({id})=>id===el.id)?...

шикос, всё работает, спасибо!)

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
9
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Карта сайта