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

如何将对象B中与对象A同名的属性值赋值给对象A

实现方法

核心逻辑是仅遍历目标对象objectA的自有属性,匹配到objectB上的同名属性时再执行赋值,不会额外新增objectA不存在的属性。

首先先修正你示例中objectB的语法问题(两处属性名后缺失冒号),以下是可直接运行的代码:

基础兼容写法

适用于所有JS运行环境,兼容性最好:

const objectA = {
  valueOne: null,
  valueTwo: null
}
const objectB = {
  valueZero: 'joe',
  valueOne: 'john',
  valueTwo: 'jesse',
  valueThree: 'jessica',
  valueFour: 'jojo'
}

for (const key in objectA) {
  // 过滤原型链上的继承属性,只处理对象自身的属性
  if (objectA.hasOwnProperty(key) && objectB.hasOwnProperty(key)) {
    objectA[key] = objectB[key]
  }
}

运行后objectA的输出结果和你要求的一致。

现代简洁写法

ES6+环境可用,代码更简洁:

Object.keys(objectA).forEach(key => {
  if (key in objectB) {
    objectA[key] = objectB[key]
  }
})

生成新对象(不修改原objectA)

如果需要保留原objectA不变,生成一个新的对象,可以用以下写法:

const newObjectA = Object.fromEntries(
  Object.keys(objectA).map(key => [
    key, 
    // 若objectB无对应属性则保留objectA的原值
    objectB.hasOwnProperty(key) ? objectB[key] : objectA[key]
  ])
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:54:07