A sorted array of unique values
export function getAllUniqueValues<TData>(
column: Column<TData, unknown>,
table: Table<TData>,
): (string | number)[] {
const accessorKey = getAccessorKey<TData>(column.columnDef);
if (accessorKey === undefined) return [];
const uniqueValues = table.options.data.reduce<(string | number)[]>((accu, row) => {
const value: unknown = row[accessorKey];
if (isStringOrNumber(value) && !accu.includes(value)) {
accu.push(value);
}
return accu;
}, []);
return uniqueValues.sort((a, b) => {
if (typeof a === 'number' && typeof b === 'number') return a - b;
return String(a).localeCompare(String(b));
});
}
Gets a sorted unique list of values for a column from all rows. Returns all values, including the filtered out ones.