Skip to content

Function: looseEqual()

looseEqual(firstValue, secondValue): boolean

Performs a deep loose equality comparison between two values. Handles special cases for dates, arrays, objects, and other types.

  • Dates are compared by their time value
  • Arrays are compared element by element recursively
  • Objects are compared by their enumerable properties recursively
  • Other values fall back to string comparison

Parameters

firstValue

unknown

The first value to compare

secondValue

unknown

The second value to compare

Returns

boolean

True if the values are loosely equal

Example

typescript
// Primitive values
console.log(looseEqual(1, 1))           // true
console.log(looseEqual('1', 1))         // true (string comparison)

// Dates
const date1 = new Date('2024-01-01')
const date2 = new Date('2024-01-01')
console.log(looseEqual(date1, date2))   // true

// Arrays
console.log(looseEqual([1, 2], [1, 2])) // true
console.log(looseEqual([1, [2]], [1, [2]])) // true (recursive)

// Objects
console.log(looseEqual({a: 1}, {a: 1})) // true
console.log(looseEqual({a: 1, b: 2}, {b: 2, a: 1})) // true

Released under the MIT License.