merge 2 object ใน Lodash

ใน Lodash, คุณสามารถใช้ฟังก์ชัน _.merge เพื่อรวม (merge) สองอ็อบเจ็กต์ (objects) เข้าด้วยกัน โดยอ็อบเจ็กต์หนึ่งจะถูกรวมกับอ็อบเจ็กต์อื่น ๆ และอ็อบเจ็กต์ผลลัพธ์จะถูกสร้างขึ้นใหม่โดยมีคุณสมบัติของทั้งสองอ็อบเจ็กต์ หากมีความขัดแย้งในคุณสมบัติ คุณสมบัติของอ็อบเจ็กต์ที่มีขึ้นก่อนจะถูกใช้ เรามาดูตัวอย่างการใช้งาน _.merge:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const _ = require('lodash');

const obj1 = {
name: 'John',
age: 30,
address: {
city: 'New York',
postalCode: '10001',
},
};

const obj2 = {
age: 35,
address: {
state: 'NY',
},
phone: '123-456-7890',
};

const mergedObject = _.merge({}, obj1, obj2);

console.log(mergedObject);

ในตัวอย่างข้างบน _.merge({}, obj1, obj2) จะรวม obj1 และ obj2 เข้าด้วยกันและสร้างอ็อบเจ็กต์ mergedObject ที่มีคุณสมบัติจากทั้งสองอ็อบเจ็กต์ หากมีคุณสมบัติที่ซ้ำกันเช่น “age” และ “address” คุณสมบัติของ obj2 จะถูกใช้งาน เมื่อมีโครงสร้างอ็อบเจ็กต์ย่อย เช่น “address” ที่ซ้ำกัน การเรียก _.merge จะรวมโครงสร้างนี้เช่นกัน.

ผลลัพธ์ที่คุณจะเห็นจากตัวอย่างนี้คือ:

1
2
3
4
5
6
{
name: 'John',
age: 35,
address: { city: 'New York', postalCode: '10001', state: 'NY' },
phone: '123-456-7890'
}

อ็อบเจ็กต์ mergedObject มีคุณสมบัติ “name” จาก obj1 และ “age”, “address”, และ “phone” จาก obj2 โดยโครงสร้างของ “address” ถูกรวมกันและรวมคุณสมบัติ “state” และ “city” ที่มีใน obj2 และ obj1 ตามลำดับ.

การใช้งาน _.merge ช่วยในการรวมข้อมูลจากหลายแหล่งเข้าด้วยกันอย่างสะดวกและยืดหยุ่น และมักใช้ในกรณีที่คุณต้องการรวมข้อมูลจากหลายแหล่งเพื่อสร้างข้อมูลใหม่หรืออัพเดตข้อมูลที่มีอยู่.