same-object

1.0.2 • Public • Published

same-object

Determine if two objects are deeply equal

npm install same-object

Supports circular references, Maps, Symbols, etc.

Aims for ~99% compatibility with deep-equal or assert.deepEqual without requiring native dependencies.
Useful for JavaScript runtimes without native Node modules like util, etc.

Usage

const sameObject = require('same-object')

console.log(sameObject(1, '1')) // true
console.log(sameObject(1, '1', { strict: true })) // false

console.log(sameObject({ a: 1 }, { a: 1 })) // true
console.log(sameObject({ a: 1 }, { a: 1, b: 2 })) // false

console.log(sameObject(
  new Set(['a', 1, 'b', 2]),
  new Set(['b', 2, 'a', 1])
)) // true

API

const bool = sameObject(a, b, [options])

Compares a and b, returning whether they are equal or not.

Available options:

{
  strict: false
}

Loosely comparison (==) by default.
Use { strict: true } for a stronger equality check (===).

References

The source code is based on:
node/comparisons.js
inspect-js/node-deep-equal
chaijs/deep-eql

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i same-object

Weekly Downloads

1,545

Version

1.0.2

License

MIT

Unpacked Size

45.8 kB

Total Files

15

Last publish

Collaborators

  • mafintosh
  • lukks