minOf

import { minOf } from "jsr:@ende/collections";

function

function minOf<T>(array: Iterable<T>, selector: (el: T, index: number) => number): number | undefined

Applies the given selector to all elements of the given collection and returns the min value of all elements. If an empty array is provided the function will return undefined.

array: Iterable<T>

The array to find the minimum element in.

selector: (el: T, index: number) => number

The function to get the value to compare from each element. The function receives the element and its index.

Returns

The smallest value of the given function or undefined if there are no elements.

Example: Basic usage

import { minOf } from "@ende/collections/min-of";
import { assertEquals } from "@ende/assert";

const inventory = [
  { name: "mustard", count: 2 },
  { name: "soy", count: 4 },
  { name: "tomato", count: 32 },
];

const minCount = minOf(inventory, (item) => item.count);

assertEquals(minCount, 2);

Example: Using the index parameter

import { minOf } from "@ende/collections/min-of";
import { assertEquals } from "@ende/assert";

const array = [4, 3, 2, 1];
const result = minOf(array, (_, index) => index);

assertEquals(result, 0);

function

function minOf<T>(array: Iterable<T>, selector: (el: T, index: number) => bigint): bigint | undefined

Applies the given selector to all elements of the given collection and returns the min value of all elements. If an empty array is provided the function will return undefined.

array: Iterable<T>

The array to find the minimum element in.

selector: (el: T, index: number) => bigint

The 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 smallest value of the given function or undefined if there are no elements.

Example: Basic usage

import { minOf } from "@ende/collections/min-of";
import { assertEquals } from "@ende/assert";

const inventory = [
  { name: "mustard", count: 2n },
  { name: "soy", count: 4n },
  { name: "tomato", count: 32n },
];

const minCount = minOf(inventory, (item) => item.count);

assertEquals(minCount, 2n);

function

function minOf<T, S extends ((el: T, index: number) => number) | ((el: T, index: number) => bigint)>(array: Iterable<T>, selector: S): ReturnType<S> | undefined

Source