在JavaScript中,将特定的键值对从一个对象添加到另一个对象可以通过多种方式实现。以下是几种常见的方法:
Object.assign()
方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
const sourceObj = { a: 1, b: 2 };
const targetObj = { c: 3 };
Object.assign(targetObj, { a: sourceObj.a, b: sourceObj.b });
console.log(targetObj); // 输出: { c: 3, a: 1, b: 2 }
展开运算符允许一个表达式在某些位置展开数组或对象。
const sourceObj = { a: 1, b: 2 };
const targetObj = { c: 3 };
const newObj = { ...targetObj, ...sourceObj };
console.log(newObj); // 输出: { c: 3, a: 1, b: 2 }
如果你只想添加特定的键值对,可以直接在目标对象上进行赋值。
const sourceObj = { a: 1, b: 2 };
const targetObj = { c: 3 };
targetObj.a = sourceObj.a;
targetObj.b = sourceObj.b;
console.log(targetObj); // 输出: { c: 3, a: 1, b: 2 }
if (!targetObj.hasOwnProperty('a')) {
targetObj.a = sourceObj.a;
}
Object.assign()
只会进行浅拷贝。可以使用 JSON.parse(JSON.stringify(obj))
进行深拷贝,但这种方法有性能问题且不能处理函数和循环引用。const deepCopy = JSON.parse(JSON.stringify(sourceObj));
Object.assign(targetObj, deepCopy);
希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云