如果键值相等,合并多个对象的方法有多种。以下是一些常见的方法:
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const obj3 = { c: 5, d: 6 };
const mergedObj = Object.assign({}, obj1, obj2, obj3);
console.log(mergedObj);
// 输出:{ a: 1, b: 3, c: 5, d: 6 }
推荐的腾讯云相关产品:腾讯云函数(Serverless Cloud Function)是一种按实际代码运行时间付费的事件驱动型计算服务,可帮助您将业务代码部署到云端,并自动弹性、按需运行。详情请参考:腾讯云函数产品介绍
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const obj3 = { c: 5, d: 6 };
const mergedObj = { ...obj1, ...obj2, ...obj3 };
console.log(mergedObj);
// 输出:{ a: 1, b: 3, c: 5, d: 6 }
推荐的腾讯云相关产品:腾讯云云服务器(Cloud Virtual Machine,CVM)提供了可弹性伸缩的计算能力,您可以根据业务需求快速创建、调整和管理云服务器。详情请参考:腾讯云云服务器产品介绍
递归遍历:
function deepMerge(target, ...sources) {
if (!sources.length) return target;
const source = sources.shift();
for (const key in source) {
if (isObject(target[key]) && isObject(source[key])) {
deepMerge(target[key], source[key]);
} else {
target[key] = source[key];
}
}
return deepMerge(target, ...sources);
}
function isObject(item) {
return item && typeof item === 'object' && !Array.isArray(item);
}
const obj1 = { a: { x: 1 }, b: 2 };
const obj2 = { a: { y: 2 }, c: 3 };
const obj3 = { a: { z: 3 }, d: 4 };
const mergedObj = deepMerge({}, obj1, obj2, obj3);
console.log(mergedObj);
// 输出:{ a: { x: 1, y: 2, z: 3 }, b: 2, c: 3, d: 4 }
JSON序列化与反序列化:
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const obj3 = { c: 5, d: 6 };
const mergedObj = JSON.parse(JSON.stringify(obj1));
Object.assign(mergedObj, obj2, obj3);
console.log(mergedObj);
// 输出:{ a: 1, b: 3, c: 5, d: 6 }
推荐的腾讯云相关产品:腾讯云云开发(Tencent Cloud Base,TCB)是一款一体化后端云服务,提供全链路云端支撑和多终端开发框架,帮助开发者快速构建云原生应用。详情请参考:腾讯云云开发产品介绍
领取专属 10元无门槛券
手把手带您无忧上云