#javascript #duplicates #pivot #ag-grid #cartesian-product
#javascript #дубликаты #сводная #ag-grid #декартово произведение
Вопрос:
Я использую обычную JS ag-grid в своем приложении. Мне нужно использовать сводный режим для отображения моих данных, но мне не хватает функции «удалить дубликаты», которая, например, есть в Excel.
Я постараюсь привести вам пример:
В моем бэкэнде данные выглядят следующим образом
[
{
property1: "prop1",
property2: "prop2",
items: [ "item1", "item2" ],
fruits: [ "fruit1", "fruit2", "fruit3"],
colors: [ "color1", "color2"]
},
{
property1: "prop1",
property2: "prop2",
items: [ "item1", "item2" ],
fruits: [ "fruit1", "fruit2", "fruit3" ],
colors: [ "color1", "color2" ]
}, ...
]
Все свойства должны иметь возможность быть выбраны либо как группа строк, либо как сводный столбец в моей сетке.
Чтобы добиться этого, я строю декартово значение этого массива, которое выглядит следующим образом:
[
{
property1: "prop1",
property2: "prop2",
item: "item1",
fruit: "fruit2",
color: "color1"
},
{
property1: "prop1",
property2: "prop2",
item: "item1",
fruit: "fruit2",
color: "color3"
}, ...
]
Это уже работает нормально, и я получаю идеально денормализованные данные для моей ag-сетки.
Однако, когда у меня, например, «элементы» заданы как группа строк, а «фрукты» — как сводный столбец, я получу дубликаты одного и того же объекта, потому что в массиве есть несколько записей с единственным отличием в свойстве color, которое не имеет отношения к этому своду.
Если я правильно помню, в сводной таблице Excel есть функция «удалить дубликаты». Есть ли что-нибудь подобное, предоставляемое ag-grid?
Если нет, я благодарен за любое другое решение.
Заранее благодарю.
Комментарии:
1. вам удалось заставить это работать?
2. да, но я реализовал свою собственную логику. В параметре valueGetter я генерирую строку, которая действует как ключ, используемый в пользовательской функции агрегирования