deep-compare-objects - v2.0.0
    Preparing search index...

    deep-compare-objects - v2.0.0

    Deep Compare Objects

    A TypeScript utility for deeply comparing objects and arrays, identifying their differences with precision.

    npm version License: MIT TypeScript

    • Deep comparison of objects and arrays
    • Handles nested structures
    • TypeScript support
    • Safe JSON stringification
    • Returns only the differences between objects
    # Using npm
    npm install deep-compare-objects

    # Using yarn
    yarn add deep-compare-objects

    # Using pnpm
    pnpm add deep-compare-objects
    import deepCompareObjects from "deep-compare-objects";

    // Basic object comparison
    const obj1 = { name: "John", age: 30 };
    const obj2 = { name: "John", age: 31 };
    const differences = deepCompareObjects(obj1, obj2);
    // Result: { age: 31 }

    // Nested object comparison
    const nested1 = { user: { name: "John", address: { city: "New York" } } };
    const nested2 = { user: { name: "John", address: { city: "Los Angeles" } } };
    const nestedDifferences = deepCompareObjects(nested1, nested2);
    // Result: { user: { address: { city: 'Los Angeles' } } }

    // Array comparison
    const arr1 = [1, 2, { name: "John" }];
    const arr2 = [1, 2, { name: "Jane" }];
    const arrayDifferences = deepCompareObjects(arr1, arr2);
    // Result: { 2: { name: 'Jane' } }

    Compares two objects and returns their differences.

    • a (optional): The first object to compare. Defaults to an empty object.
    • b (optional): The second object to compare. Defaults to an empty object.
    • An object containing only the differences between a and b
    • undefined if b is null or undefined
    • For primitive values, returns the new value if different
    • For objects, recursively compares and returns only the changed properties
    • For arrays, compares each element and returns only the changed elements
    • Handles circular references safely using json-stringify-safe
    const obj1 = { name: "John", age: 30 };
    const obj2 = { name: "John", age: 31, city: "New York" };
    const result = deepCompareObjects(obj1, obj2);
    // Result: { age: 31, city: 'New York' }
    const obj1 = {
    user: {
    name: "John",
    preferences: {
    theme: "dark",
    notifications: true,
    },
    },
    };

    const obj2 = {
    user: {
    name: "John",
    preferences: {
    theme: "light",
    notifications: true,
    },
    },
    };

    const result = deepCompareObjects(obj1, obj2);
    // Result: { user: { preferences: { theme: 'light' } } }
    const arr1 = [1, 2, { name: "John" }];
    const arr2 = [1, 3, { name: "Jane" }];
    const result = deepCompareObjects(arr1, arr2);
    // Result: { 1: 3, 2: { name: 'Jane' } }

    Contributions are welcome! Please feel free to submit a Pull Request.

    This project is licensed under the MIT License - see the LICENSE file for details.

    Amir Farzamnia - GitHub

    If you find this package useful, please consider giving it a ⭐️ on GitHub!