Blog>
Snippets

Custom Comparator for Nested Object Sorting

Demonstrate creating a custom comparator function to sort table data by properties of nested objects within React TanStack Table.
const customSortingFunction = (rowA, rowB, columnId) => {
  // Accessing the nested property value for comparison
  const valueA = rowA.values[columnId].nestedProperty;
  const valueB = rowB.values[columnId].nestedProperty;

  // Assuming the property to sort by is numeric
  return valueA - valueB;
};
Defines a custom comparator function named 'customSortingFunction' for sorting table rows based on the values of nested properties within each row. Assumes the nested property is numeric for simple subtraction-based comparison.
const columns = [
  {
    // Define a column
    Header: 'Nested Property Column',
    accessor: 'nestedObject', // accessing the nested object
    sortType: customSortingFunction // Use the custom function for this column's sorting
  }
];
Creates a column definition for React TanStack Table where 'accessor' points to the nested object. The 'sortType' for this column uses the custom sorting function defined earlier to sort data based on the properties of nested objects.
const tableInstance = useReactTable({
  data, // your data array
  columns, // the columns definition including our custom sorted column
  getCoreRowModel: getCoreRowModel(),
  // other necessary configurations...
});
Initializes a React TanStack Table instance using the 'useReactTable' hook. It integrates our custom sorting logic through the 'columns' definition. Data sorting according to the nested object's property is now enabled for the specified column.