| description | Modern alternatives to the deep-equal package for deep object comparison |
|---|
Node.js has a builtin function isDeepStrictEqual. Consider using that if you don’t need browser support.
Example:
import equal from 'deep-equal' // [!code --]
import { isDeepStrictEqual } from 'node:util' // [!code ++]
const a = { foo: 'bar' }
const b = { foo: 'bar' }
equal(a, b) // true [!code --]
isDeepStrictEqual(a, b) // true [!code ++]dequal has the same simple API as deep-equal.
Example:
import equal from 'deep-equal' // [!code --]
import dequal from 'dequal' // [!code ++]
const a = { foo: 'bar' }
const b = { foo: 'bar' }
equal(a, b) // true [!code --]
dequal(a, b) // true [!code ++]Bun has a built-in Bun.deepEquals function. It accepts two values to compare, and an optional strict flag (default false).
Example:
import equal from 'deep-equal' // [!code --]
const a = { foo: 'bar' }
const b = { foo: 'bar' }
equal(a, b) // true [!code --]
Bun.deepEquals(a, b) // true [!code ++]
// Strict Mode
equal(a, b, { strict: true }) // true [!code --]
Bun.deepEquals(a, b, true) // true [!code ++]