在JavaScript中合并两个对象,忽略未定义的值

假设我们有两个对象,像这样说A和B-

const A = { activity: 'purchased', count: undefined, time: '09:05:33' };
const B = { activity: 'purchased', count: '51', time: undefined };

 

我们需要编写一个合并这两个对象的JavaScript函数,请记住,如果任何键具有真实值,则不应将其替换为具有虚假值的键。

如果我们仅使用散布运算符执行此操作,它将不会跟踪真值或虚假值。

因此,我们必须使用迭代方法来执行此操作。

示例

以下是代码-

const A = { activity: 'purchased', count: undefined, time: '09:05:33' };
const B = { activity: 'purchased', count: '51', time: undefined };
const mergeObject = (A, B) => {
   let res = {};
   Object.keys({...A,...B}).map(key => {
      res[key] = B[key] || A[key];
   });
   return res;
};
console.log(mergeObject(A, B));

输出结果

这将在控制台上产生以下输出-

{ activity: 'purchased', count: '51', time: '09:05:33' }