You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中比较两个对象并创建值不同的新对象

提取两个JavaScript对象的差异属性生成新对象

当然可以实现这个需求,下面给你两种常见的处理方式:

一、针对已知差异属性的简单写法

如果已经明确只有name属性存在差异,可以直接创建目标对象:

var obj1={
  name:"jhon",
  age:"26",
  role:"intern"
}

var obj2={
  name:"jhon berner",
  age:"26",
  role:"intern"
}

var newobj = {
  name: obj2.name
}

二、通用差异提取函数(适合多属性场景)

如果后续对象属性可能增加,或者不确定具体哪些属性有差异,可以写一个通用函数,自动对比两个对象的所有属性,收集obj2中与obj1不同的属性:

传统循环写法

function getDiffObj(objA, objB) {
  const diff = {};
  for (const key in objB) {
    if (objA[key] !== objB[key]) {
      diff[key] = objB[key];
    }
  }
  return diff;
}

var newobj = getDiffObj(obj1, obj2);
// 输出结果:{ name: "jhon berner" }

ES6简洁写法

const getDiffObj = (objA, objB) => 
  Object.entries(objB).reduce((diff, [key, value]) => {
    objA[key] !== value && (diff[key] = value);
    return diff;
  }, {});

var newobj = getDiffObj(obj1, obj2);

以上两种方式都能生成你需要的newobj对象。

内容的提问来源于stack exchange,提问作者shashank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 01:06:20