| 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 ++]fast-deep-equal again has the same API shape.
Example:
import deepEqual from 'deep-equal' // [!code --]
import fastDeepEqual from 'fast-deep-equal' // [!code ++]
const a = { foo: 'bar' }
const b = { foo: 'bar' }
deepEqual(a, b) // true [!code --]
fastDeepEqual(a, b) // true [!code ++]Note
This library has a separate entrypoint for supporting Maps, Sets, etc. You can use fast-deep-equal/es6 to support those types.