JavaScript 合并对象函数:mergeObjects()

此函数用于合并多个对象,返回合并后的对象。

函数定义

/**
 * 合并多个对象
 * @param {Object} target - 目标对象
 * @param {...Object} sources - 源对象
 * @returns {Object} 合并后的对象
 */
export function mergeObjects(target, ...sources) {
   sources.forEach(source => {
      Object.keys(source).forEach(key => {
         if (typeof source[key] === 'object') {
            // 如果源对象的属性值是对象,则递归合并
            if (!target[key]) {
               target[key] = {};
            }
            mergeObjects(target[key], source[key]);
         } else {
            // 否则直接覆盖目标对象的属性值
            target[key] = source[key];
         }
      });
   });
   return target;
}

参数

  • target {Object}:目标对象。
  • sources {...Object}:源对象。

返回值

  • 返回合并后的对象。

示例

const target = { a: 1, b: { c: 2 } };
const source1 = { b: { d: 3 } };
const source2 = { e: 4 };

const merged = mergeObjects(target, source1, source2);
// merged: { a: 1, b: { c: 2, d: 3 }, e: 4 }

用法

  1. 导入 mergeObjects 函数。
  2. 创建目标对象和源对象。
  3. 调用 mergeObjects 函数,将目标对象和源对象作为参数传入。
  4. 函数将返回合并后的对象。

注意事项

  • 此函数会修改目标对象,不会创建新的对象。
  • 如果源对象和目标对象具有相同的属性,则源对象的属性值将覆盖目标对象的属性值。
  • 此函数使用递归方法合并嵌套对象。

原文地址: https://www.cveoy.top/t/topic/lKIX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录