📊 Sorts an array of objects by one or more properties or iteratees.
Info
Immutable: This function does not mutate the original array.
Syntax
TypeScript
import { sortBy } from '@opentf/std'; sortBy<T>( arr: T[], ...tuples: [key: keyof T | ((obj: T) => unknown), order: "asc" | "desc"][] ): T[]
Parameters
arr: The source array of objects....tuples: A list of tuples where each tuple contains a key (property name or function) and the sort order ('asc'or'desc').
Returns
A new sorted array.
Examples
TypeScript
const fruits = [ { name: 'banana', amount: 2 }, { name: 'apple', amount: 4 }, { name: 'pineapple', amount: 2 }, { name: 'mango', amount: 1 }, { name: 'orange', amount: 5 }, ]; sortBy(fruits, ['name', 'asc']); // OR sortBy(fruits, [(o) => o.name, 'asc']); //=> [ // { name: 'apple', amount: 4 }, // { name: 'banana', amount: 2 }, // { name: 'mango', amount: 1 }, // { name: 'orange', amount: 5 }, // { name: 'pineapple', amount: 2 }, // ] sortBy(fruits, ['amount', 'desc'], ['name', 'asc']); // OR sortBy(fruits, [o => o.amount, 'desc'], [o => o.name, 'asc']); //=> [ // { name: 'orange', amount: 5 }, // { name: 'apple', amount: 4 }, // { name: 'banana', amount: 2 }, // { name: 'pineapple', amount: 2 }, // { name: 'mango', amount: 1 } // ]