본문으로 건너뛰기

sum

Calculates the sum of all numbers in an array using optimized iteration. Adds all numerical values in the provided array using a single-pass algorithm. Returns 0 for empty arrays following mathematical convention (empty sum). More efficient than reduce() for simple summation due to avoiding function call overhead.

Signature

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

Parameters

NameTypeDescription
numbers-Array of numbers to sum (readonly)

Returns

Sum of all numbers in the array, or 0 if array is empty

Examples

Basic summation operations

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

console.log(sum([1, 2, 3, 4, 5])); // 15
console.log(sum([10, 20, 30])); // 60
console.log(sum([42])); // 42 (single element)
console.log(sum([])); // 0 (empty array)
console.log(sum([-1, 1, -2, 2])); // 0 (balanced positive/negative)

Edge cases and decimal handling

// Decimal numbers
console.log(sum([1.1, 2.2, 3.3])); // 6.6
console.log(sum([0.1, 0.2])); // 0.30000000000000004 (floating point)

// Special values
console.log(sum([1, NaN, 3])); // NaN (NaN propagates)
console.log(sum([1, Infinity, 3])); // Infinity
console.log(sum([-Infinity, Infinity])); // NaN

// Large arrays
console.log(sum(Array(1000).fill(1))); // 1000

Playground

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

console.log(sum([1, 2, 3, 4, 5])); // 15
console.log(sum([10, 20, 30])); // 60
console.log(sum([42])); // 42 (single element)
console.log(sum([])); // 0 (empty array)
console.log(sum([-1, 1, -2, 2])); // 0 (balanced positive/negative)

Notes

Algorithm Properties:

  • Single-pass O(n) iteration through the array
  • No sorting or complex operations required
  • Handles NaN and Infinity following JavaScript arithmetic rules
  • Returns 0 for empty arrays (mathematical identity element)
  • Preserves floating-point precision characteristics

Use Cases:

  • Statistical calculations and data analysis
  • Financial computations (totals, running balances)
  • Scientific calculations and measurements
  • Performance metrics and aggregation
  • Gaming systems (score totals, resource counting)
  • Business intelligence and reporting

Performance: O(n) time complexity, O(1) space complexity. More efficient than Array.reduce() for simple addition due to direct loop implementation.