Horje
Difference Between _.assign() & _.merge() Method in Lodash

Lodash is a JavaScript library that works on the top of underscore.js. It helps in working with arrays, strings, objects, numbers, etc. It provides us with various inbuilt functions and uses a functional programming approach.

Installation

To use Lodash, first install the package using npm:

npm install lodash

Lodash _.assign() Method

_.assign performs a shallow merge of objects. It copies properties from one or more source objects into a target object, directly modifying the target. Nested objects are merged by reference, not by creating deep copies.

Example 1: Basic Usage

JavaScript
const _ = require('lodash');

let target = { a: 1, b: 2 };
let source = { b: 3, c: 4 };

_.assign(target, source);
console.log(target);

Output :

{ a: 1, b: 3, c: 4 }

Example 2: Nested Objects

JavaScript
const _ = require('lodash');

let target = { a: { x: 1 }, b: 2 };
let source = { a: { y: 2 }, c: 3 };

_.assign(target, source);
console.log(target);

Output:

{ a: { y: 2 }, b: 2, c: 3 }

Lodash _.merge() Method

_.merge offers deep merge functionality. It recursively combines properties from source objects into a brand new target object. This preserves the original target object and creates deep copies for nested objects, allowing independent modifications.

Example 1: Basic Usage

JavaScript
const _ = require('lodash');

let target = { a: 1, b: 2 };
let source = { b: 3, c: 4 };

let result = _.merge({}, target, source);
console.log(result);

Output:

{ a: 1, b: 3, c: 4 }

Example 2: Nested Objects

JavaScript
const _ = require('lodash');

let target = { a: { x: 1 }, b: 2 };
let source = { a: { y: 2 }, c: 3 };

let result = _.merge({}, target, source);
console.log(result);

Output:

{ a: { x: 1, y: 2 }, b: 2, c: 3 }

Difference between Lodash _.assign() Method and _.merge() Method

Feature

`_.assign()`

`_.merge()`

Copy Type

Shallow copy (modifies the target object)

Deep copy (creates a new target object)

Mutability

Modifies the target object directly

Returns a new object, leaving the target unmodified

Nested Objects M

Objects Overwritten by reference from source objects

Recursively merged, preserving original nested structures

Suitable for

Simple merging, combining basic properties

Complex object structures, deep merging with independence




Reffered: https://www.geeksforgeeks.org


JavaScript

Related
JavaScript Program to Delete all Nodes of a Binary Search Tree JavaScript Program to Delete all Nodes of a Binary Search Tree
How to Make a HTTP Request in JavaScript? How to Make a HTTP Request in JavaScript?
How to Check If It Is a Straight Line in JavaScript? How to Check If It Is a Straight Line in JavaScript?
How To Change The Browser To Fullscreen with JavaScript? How To Change The Browser To Fullscreen with JavaScript?
How to Send an HTTP POST Request in JS? How to Send an HTTP POST Request in JS?

Type:
Geek
Category:
Coding
Sub Category:
Tutorial
Uploaded by:
Admin
Views:
15