在 javascript 中,合并對(duì)象有多種方法:淺拷貝(object.assign())副本源對(duì)象的第一級(jí)屬性;深拷貝(json.parse(json.stringify()))遞歸復(fù)制所有屬性;第三方庫(如 lodash)提供高級(jí)合并功能(如自定義策略和深拷貝選項(xiàng))。
JavaScript 中合并對(duì)象的技巧
在 JavaScript 中,合并對(duì)象是一種常見的操作,用于將多個(gè)對(duì)象的屬性和值組合成一個(gè)新的對(duì)象。以下介紹了 JavaScript 中合并對(duì)象的三種主要方式:
1. 淺拷貝
淺拷貝只復(fù)制源對(duì)象的第一級(jí)屬性和值到目標(biāo)對(duì)象,而不會(huì)復(fù)制嵌套的對(duì)象或數(shù)組。使用 Object.assign() 函數(shù)可以實(shí)現(xiàn)淺拷貝:
const obj1 = { name: 'John', age: 30 };
const obj2 = { city: 'New York' };
const mergedObj = Object.assign({}, obj1, obj2);
// mergedObj: { name: 'John', age: 30, city: 'New York' }
登錄后復(fù)制
2. 深拷貝
深拷貝可以復(fù)制源對(duì)象的所有屬性和值,包括嵌套的對(duì)象和數(shù)組。可以使用 JSON.parse(JSON.stringify()) 方法實(shí)現(xiàn)深拷貝:
const obj1 = { name: 'John', age: 30, address: { street: 'Main St' } };
const obj2 = { city: 'New York' };
const mergedObj = JSON.parse(JSON.stringify(obj1)); // 創(chuàng)建 obj1 的副本
Object.assign(mergedObj, obj2); // 合并 obj2 的屬性
// mergedObj: { name: 'John', age: 30, address: { street: 'Main St' }, city: 'New York' }
登錄后復(fù)制
3. 使用庫
也可以使用第三方庫(如 lodash 或 underscore) 來簡(jiǎn)化對(duì)象合并的過程。這些庫提供了更高級(jí)的合并功能,例如自定義合并策略和深拷貝選項(xiàng)。
例如,使用 lodash 中的 _.merge() 函數(shù):
const obj1 = { name: 'John', age: 30 };
const obj2 = { city: 'New York' };
const mergedObj = _.merge(obj1, obj2);
// mergedObj: { name: 'John', age: 30, city: 'New York' }
登錄后復(fù)制






