maxOf
import { maxOf } from "jsr:@ende/collections";function
function maxOf<T>(array: Iterable<T>, selector: (el: T, index: number) => number): number | undefinedApplies the given selector to all elements of the provided collection and returns the max value of all elements. If an empty array is provided the function will return undefined.
array: Iterable<T>The array to find the maximum element in.
selector: (el: T, index: number) => numberThe function to get the value to compare from each element. The function receives the element and its index.
Returns
The largest value of the given function or undefined if there are no elements.
Example: Basic usage
import { maxOf } from "@ende/collections/max-of";
import { assertEquals } from "@ende/assert";
const inventory = [
{ name: "mustard", count: 2 },
{ name: "soy", count: 4 },
{ name: "tomato", count: 32 },
];
const maxCount = maxOf(inventory, (item) => item.count);
assertEquals(maxCount, 32);
Example: Using the index parameter
import { maxOf } from "@ende/collections/max-of";
import { assertEquals } from "@ende/assert";
const array = [4, 3, 2, 1];
const result = maxOf(array, (_, index) => index);
assertEquals(result, 3);
function
function maxOf<T>(array: Iterable<T>, selector: (el: T, index: number) => bigint): bigint | undefinedApplies the given selector to all elements of the provided collection and returns the max value of all elements. If an empty array is provided the function will return undefined.
array: Iterable<T>The array to find the maximum element in.
selector: (el: T, index: number) => bigintThe function to get the value to compare from each element. The function receives the element and its index.
Returns
The first element that is the largest value of the given function or undefined if there are no elements.
Example: Basic usage
import { maxOf } from "@ende/collections/max-of";
import { assertEquals } from "@ende/assert";
const inventory = [
{ name: "mustard", count: 2n },
{ name: "soy", count: 4n },
{ name: "tomato", count: 32n },
];
const maxCount = maxOf(inventory, (i) => i.count);
assertEquals(maxCount, 32n);
function
function maxOf<T, S extends ((el: T, index: number) => number) | ((el: T, index: number) => bigint)>(array: Iterable<T>, selector: S): ReturnType<S> | undefined