Имеется структура данных. У каждого объекта в массиве есть массив свойств
arr = [
{title: 'test 1', props: [4,5]},
{title: 'test 3', props: [2,4]},
{title: 'test 2', props: [1,2,5]},
];
после группировки нужно получить
{
5: [
{title: 'test 1', props: [4,5]},
{title: 'test 2', props: [1,2,5]},
],
2: [
{title: 'test 3', props: [2,4]},
]
}
то есть таким образом, что бы в каждой группе было максимальное вхождение по одному из начений в props.
Если изменить начальную стуктуру
arr.push({title: 'test 4', props: [1,4]})
То результат должен стать таким:
{
4: [
{title: 'test 1', props: [4,5]},
{title: 'test 4', props: [1,4]},
{title: 'test 3', props: [2,4]},
],
1: [
{title: 'test 2', props: [1,2,5]},
]
}
UPD
Если не абстрактно, то в массиве автозапчасти, в props id магазинов, где товар в наличии. Вопрос: в каком магазине наибольший ассортимент?
UPD 2
Если совсем не обстрактно, то в массиве заказ на автозапчасти, нужно сгрупировать их по магазинам без дублирования и отправить курьера забирать, учитываю, что он может это сделать в два этапа, сначала большую часть, потом остальное