Newton's Poleless Magnet

    is-equal

    1.6.4 • Public • Published

    is-equal Version Badge

    github actions coverage dependency status dev dependency status License Downloads

    npm badge

    Are these two values conceptually equal?

    Example

    var isEqual = require('is-equal');
    var assert = require('assert');
    
    var primitives = [true, false, undefined, 42, 'foo'];
    primitives.forEach(function (primitive) {
    	assert.equal(isEqual(primitive, primitive), true);
    });
    assert.equal(isEqual(/a/g, /a/g), true);
    assert.equal(isEqual(/a/g, new RegExp('a', 'g')), true);
    assert.equal(isEqual({ a: 2 }, { a: 2 }), true);
    assert.equal(isEqual([1, [2, 3], 4], [1, [2, 3], 4]), true);
    var timestamp = Date.now();
    assert.equal(isEqual(new Date(timestamp), new Date(timestamp)), true);

    Want to know why two values are not equal?

    Will return an empty string if isEqual would return true - otherwise will return a non-empty string that hopefully explains the reasoning.

    var whyNotEqual = require('is-equal/why');
    
    assert.equal(whyNotEqual(1, 1), '');
    assert.equal(
      whyNotEqual({ a: 1 }, { a: 2 }),
      'value at key "a" differs: numbers are different: 1 !== 2'
    );
    

    Tests

    Simply clone the repo, npm install, and run npm test

    Install

    npm i is-equal

    DownloadsWeekly Downloads

    56,093

    Version

    1.6.4

    License

    MIT

    Unpacked Size

    112 kB

    Total Files

    15

    Last publish

    Collaborators

    • ljharb
    • substack