Skip to main content

Data calculation functions

The DHTMLX library provides a helper that allows specifying and redefining the functions of data calculation used by the library. You can calculate data with available functors or create a custom one using the dhx.methods handler.

The following functors are available:

  • avg - calculates the average data value
  • count - calculates the total number of items, doesn't take empty data values into account
  • max - calculates the maximal value in the data
  • min - calculates the minimal value in the data
  • sum - calculates the sum of data values

For example, this is how the sum functor is called:

const rows = [{ value: 10 }, { value: 20 }, { value: 30 }];
const sum = dhx.methods.sum(rows, "value"); // 60

Defining a custom functor

You can specify a custom function for calculating data. For example, you can use the methods helper function for adding custom calculations to get a summary of counted values.

In the example below a custom functor doubleSum() that calculates a doubled sum of values for a particular column is defined. The result of its calculations is used to render statistics in the footer of the "population" column.

dhx.methods.doubleSum = (rows, field) => {
return rows.reduce((sum, row) => sum + row[field] * 2, 0);
};

const grid = new dhx.Grid("grid_container", {
columns: [
{
id: "population",
header: [{ text: "Population" }],
footer: [{ text: (content) => content.doubleSum }],
summary: "doubleSum"
},
],
data: dataset
});

const customSummary = grid.getSummary("population");
console.log(customSummary); // { doubleSum: 2000000 } - a doubled sum of counted values in the "population" column