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

JavaScript中如何返回两个对象间值不匹配的条目

单对象差异字段提取实现

核心目标为从两个同结构单JavaScript对象中,提取新对象与默认对象取值不一致的条目,剔除完全匹配的公共字段。

  • 原参考方案适配场景说明:你之前参考的对象数组对比实现,是针对跨数组的元素级匹配逻辑,和当前单对象的键值对差异提取场景不匹配,因此无法直接套用得到预期结果。
  • 原示例对象的语法修正:你初始定义的两个对象属性行缺少逗号分隔,直接运行会触发语法报错,补全语法后的可运行对象结构如下:
const defaultObject = {
  item1: "",
  item2: 2,
  item3: 3,
  item4: ""
}

const newObject = {
  item1: 1,
  item2: 4,
  item3: 3,
  item4: "something"
}
  • 差异提取实现逻辑:遍历新对象的所有可枚举键值对,逐一对标默认对象的同键取值,过滤掉值完全相等的条目,将剩余条目重新组装为对象即可。

可直接运行的实现代码:

const diffResult = Object.fromEntries(
  Object.entries(newObject).filter(([key, currentValue]) => {
    // 仅保留与默认对象取值不相等的字段
    return currentValue !== defaultObject[key]
  })
)

console.log(diffResult)
// 控制台输出为你预期的结构:
// {
//   item1: 1,
//   item2: 4,
//   item4: "something"
// }

逻辑说明:两个对象中取值完全一致的item3会被过滤掉,最终保留所有存在值差异的字段,和预期输出完全对齐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 20:36:05