Array
groupBy

📂 Groups elements of an array based on a specified key or iteratee function.

Syntax

import { groupBy } from '@opentf/std';
 
groupBy<T>(
  arr: T[],
  key: ((val: T) => string) | keyof T
): Record<string, T[]>

Parameters

  • arr: The source array.
  • key: A property name or a function that returns a string to use as the group key.

Returns

An object where keys are the result of the iteratee and values are arrays of elements that produced that key.

Examples

groupBy([]) //=> {}
 
groupBy(["a"]) //=> { undefined: ["a"] }
 
const products = [
  { name: "apples", category: "fruits" },
  { name: "oranges", category: "fruits" },
  { name: "potatoes", category: "vegetables" },
];
groupBy(products, "category")
//=> {
//   fruits: [
//     { name: "apples", category: "fruits" },
//     { name: "oranges", category: "fruits" },
//   ],
//   vegetables: [{ name: "potatoes", category: "vegetables" }],
// };
 
groupBy([1, 2, 3, 4, 5, 6, 7, 8, 9], (v) => (v % 2 === 0 ? "Even" : "Odd"))
//=> {
//  Even: [2, 4, 6, 8],
//  Odd: [1, 3, 5, 7, 9]
// }
 
groupBy(["one", "two", "three"], "length")
//=> {
//   3: ["one", "two"],
//   5: ["three"],
// }

Related

Try