Angular/Typescript - 在两个相似对象之间快速分配对象属性的方法
我有两个非常相似的对象类,我需要知道是否有一种方法可以轻松地将 object1 的所有公共属性值分配给 object2。
情景如下:
let obj1:Product;
left obj2:OffertRow;
实例的常见属性是:idProduct, ProductName
有没有一种方法可以像这样做,以便将 obj2 的属性传递给 obj1 的一个?
obj1 = obj2
或者我总是必须指定属性:
obj1.idProduct = obj2.idProduct;
obj1.Product = obj2.Product;
.... = ...
感谢支持
答案#1
你可以使用 Object.keys()
Object.keys() 方法返回一个给定对象的属性名数组,顺序与使用普通循环获取时相同。
var obj1 = {}
var obj2 = {}
Object.keys(obj2).forEach(key2 => {
Object.keys(obj1).forEach(key1 => {
if (key1 === key2) {
obj1[key1] = obj2[key1]
}
})
})
答案#2
Object.assign(obj1, obj2) 正是你正在寻找的。
https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
编辑:抱歉,我以为你在说 JSON 对象而不是类。答案错了!
