this package provides a utility for deep comparison of two values (objects, primitives or arrays) in JavaScript / Typescript. It can be used to check if two objects are equal in value, even if they have different references in memory. The isEqual function recursively compares each property of the objects, using the === operator to compare primitive values and recursively calling itself to compare nested objects and arrays. The package also provides an option to perform a strict comparison, which will check that the objects have the same prototype chain, constructor, and other characteristics. The package is commonly used in testing frameworks, such as Jest, to compare the expected and actual values of test results.
-
As a developer, i want to use isEqual for comparing two values
-
As a developer, i don't want to create a custom comparator
- ✅ Compares two values for equality.
- ✅ Include Array, Date, Error, RegExp, DomNode, Primitives or Objects.
- ✅ Includes also circular references.
- ✅ Available as a simple API and simple to use CLI
- ✅ Just
775 byte
nano sized (ESM, gizpped) - ✅ Tree-shakable and side-effect free
- ✅ Runs on Windows, Mac, Linux, CI tested
- ✅ First class TypeScript support
- ✅ 100% Unit Test coverage
- yarn:
yarn add @jsheaven/equal
- npm:
npm install @jsheaven/equal
import { isEqual } from '@jsheaven/equal'
const equal = isEqual({ date: new Date('2023-02-02') }, { date: new Date('2023-02-02') })
if (equal) {
//logic if result is equal
} else {
//logic if result is not equal
}
const { isEqual } = require('@jsheaven/equal')
// same API like ESM variant