본문으로 건너뛰기

min

Finds the minimum value in an array of numbers using optimized iteration. Determines the smallest numerical value from the provided array using a single-pass algorithm. Returns Infinity for empty arrays, following JavaScript's Math.min behavior. More efficient than Math.min for large arrays due to avoiding function call overhead.

Signature

const min: (numbers: readonly number[]) => number

Parameters

NameTypeDescription
numbers-Array of numbers to find minimum from (readonly)

Returns

Minimum value from the array, or Infinity if array is empty

Examples

Basic minimum finding

import { min } from '@winglet/common-utils';

console.log(min([5, 1, 9, 3])); // 1
console.log(min([10, 20, 15])); // 10
console.log(min([42])); // 42 (single element)
console.log(min([-5, -1, -10])); // -10 (smallest negative)
console.log(min([0, 1, -1])); // -1

Edge cases and special values

// Empty array
console.log(min([])); // Infinity

// Arrays with special values
console.log(min([1, NaN, 3])); // NaN (NaN propagates)
console.log(min([1, -Infinity, 3])); // -Infinity
console.log(min([Infinity, 100])); // 100

// Decimal numbers
console.log(min([1.9, 1.1, 1.5])); // 1.1

Playground

import { min } from '@winglet/common-utils';

console.log(min([5, 1, 9, 3])); // 1
console.log(min([10, 20, 15])); // 10
console.log(min([42])); // 42 (single element)
console.log(min([-5, -1, -10])); // -10 (smallest negative)
console.log(min([0, 1, -1])); // -1

Notes

Algorithm Properties:

  • Single-pass O(n) iteration through the array
  • No sorting required (more efficient than sort-based approaches)
  • Handles NaN values following JavaScript comparison rules
  • Returns Infinity for empty arrays (consistent with Math.min())

Use Cases:

  • Statistical analysis and data processing
  • Array filtering and data validation
  • Algorithm optimization (finding minimum values)
  • Data visualization (chart scaling, range calculation)
  • Performance monitoring (finding minimum metrics)
  • Quality control (detecting minimum thresholds)

Performance: O(n) time complexity, O(1) space complexity. More efficient than Math.min(...array) for large arrays due to avoiding spread operator.