Функция Ag-grid Pivot «Удаление дубликатов», как в Excel

#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 я генерирую строку, которая действует как ключ, используемый в пользовательской функции агрегирования