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