TheAlgorithms/JavaScript · error · TypeError

Invalid Input

Error message

Invalid Input

What it means

The meanAbsoluteDeviation function computes the mean absolute deviation of a dataset by iterating over elements and passing them to mean(). The guard rejects non-array input with a TypeError. Note: it checks for Array type but does NOT validate that individual elements are numbers, so an array of non-numbers would fail later inside mean().

Source

Thrown at Maths/MeanAbsoluteDeviation.js:11

import { mean } from './AverageMean.js'
/**
 *@function meanAbsoluteDeviation
 *@description Calculates the mean absolute deviation of list of numbers
 * @param {Integer} data
 * @returns meanAbsoluteDeviation([2,34,5,0,-2]) = 10.480
 * @url https://en.wikipedia.org/wiki/Average_absolute_deviation
 */
function meanAbsoluteDeviation(data) {
  if (!Array.isArray(data)) {
    throw new TypeError('Invalid Input')
  }
  let absoluteSum = 0
  const meanValue = mean(data)
  for (const dataPoint of data) {
    absoluteSum += Math.abs(dataPoint - meanValue)
  }
  return absoluteSum / data.length
}

export { meanAbsoluteDeviation }

View on GitHub (pinned to 5c39e87a9a)

Solutions

  1. Pass a JavaScript array of numbers.
  2. Convert string input to an array with split and map to Number.
  3. Use Array.isArray() to pre-check before calling.

Example fix

// before
meanAbsoluteDeviation("1,2,3")
// after
meanAbsoluteDeviation([1, 2, 3])
Defensive patterns

Strategy: type-guard

Validate before calling

if (!Array.isArray(data) || !data.every((x) => typeof x === 'number')) {
  throw new TypeError('data must be an array of numbers')
}
meanAbsoluteDeviation(data)

Type guard

const isNumberArray = (d) => Array.isArray(d) && d.every((x) => typeof x === 'number')

Prevention

When it happens

Trigger: Calling meanAbsoluteDeviation("1,2,3"), meanAbsoluteDeviation(123), meanAbsoluteDeviation(null), or meanAbsoluteDeviation({0:1, length:3}). Any non-array value triggers this error.

Common situations: Passing a comma-separated string instead of an array, passing a single number, or destructuring that produces a non-array value.

Related errors


AI-assisted analysis of TheAlgorithms/JavaScript@5c39e87a9a (2026-08-13). Data as JSON: /api/errors/8c6a04819bd85d8c. Report an issue: GitHub.