equals()
The equals() function performs deep equality comparison for values, including SurrealDB-specific types that may not compare correctly with JavaScript's === operator.
Import:
Source: utils/equals.ts
Function Signature
Parameters
| Parameter | Type | Description |
|---|---|---|
a | unknown | First value to compare. |
b | unknown | Second value to compare. |
Returns
boolean - true if values are deeply equal, false otherwise
What It Compares
The equals() function correctly handles:
Primitives - strings, numbers, booleans, null, undefined
SurrealDB Types - RecordId, DateTime, Duration, Decimal, Uuid, etc.
Dates - JavaScript Date objects
Regular Expressions - RegExp patterns
Objects - Deep object comparison
Arrays - Deep array comparison
Mixed types - Proper handling of bigint/number comparisons
Examples
Primitive Comparisons
SurrealDB Type Comparisons
Object Comparisons
Array Comparisons
Mixed Type Comparisons
Use Cases
Checking Record Existence
Deduplication
Change Detection
Array Difference
Caching / Memoization
Record Comparison
Why Not Use === or ==?
JavaScript's equality operators don't work correctly for:
Best Practices
1. Use for Value Comparisons
2. Use for Complex Type Comparisons
3. Prefer Built-in .equals() for Single Types
See Also
Data Types - SurrealDB data types
RecordId.equals() - RecordId-specific comparison
DateTime.equals() - DateTime-specific comparison