VDL Plugin SDK

minBy

Import from @varavel/vdl-plugin-sdk/utils/arrays.

Utility functions re-exported from es-toolkit (MIT License). See https://github.com/toss/es-toolkit for more details.

Call Signature

function minBy<T>(items, getValue): T;

Finds the element in an array that has the minimum value when applying the getValue function to each element.

Type Parameters

Type ParameterDescription
TThe type of elements in the array.

Parameters

ParameterTypeDescription
itemsreadonly [T, T]The nonempty array of elements to search.
getValue(element, index, array) => numberA function that selects a numeric value from each element.

Returns

T

The element with the minimum value as determined by the getValue function.

Example

minBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 1 }
minBy([], x => x.a); // Returns: undefined
minBy([3, NaN, 1], x => x); // Returns: NaN (NaN propagates, matching Math.min)
minBy(
  [
    { name: 'john', age: 30 },
    { name: 'jane', age: 28 },
    { name: 'joe', age: 26 },
  ],
  x => x.age
); // Returns: { name: 'joe', age: 26 }

Call Signature

function minBy<T>(items, getValue): T | undefined;

Finds the element in an array that has the minimum value when applying the getValue function to each element.

Type Parameters

Type ParameterDescription
TThe type of elements in the array.

Parameters

ParameterTypeDescription
itemsreadonly T[]The array of elements to search.
getValue(element, index, array) => numberA function that selects a numeric value from each element.

Returns

T | undefined

The element with the minimum value as determined by the getValue function, or undefined if the array is empty.

Example

minBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 1 }
minBy([], x => x.a); // Returns: undefined
minBy([3, NaN, 1], x => x); // Returns: NaN (NaN propagates, matching Math.min)
minBy(
  [
    { name: 'john', age: 30 },
    { name: 'jane', age: 28 },
    { name: 'joe', age: 26 },
  ],
  x => x.age
); // Returns: { name: 'joe', age: 26 }