我有这两个对象:
obj1 = {a: '', b: ''} obj2 = {a: '1', b: '2', c: '3'}
我要将所有匹配属性从obj2复制到obj1。在Typescript中实现这一目标的最佳方法是什么?
obj2
obj1
7eumitmz1#
在 typescript 中做这件事的最好方法是什么和JavaScript一样。使用Object.keys即可下面的代码将内容从obj2移动到obj1:
Object.keys
let obj1 = {a: '', b: ''} let obj2 = {a: '1', b: '2', c: '3'} Object.keys(obj2).forEach(key=>obj1[key]=obj2[key]);
对于任何条件,如必须尚未在obj1等中,您可以在forEach中进行检查🌹
forEach
kg7wmglp2#
如果你不介意obj1中不存在任何obj2的键,更清晰的方法是使用Object.assign(obj1, obj2):
Object.assign(obj1, obj2)
li9yvcax3#
我认为@basarat的意思是迭代目标属性,而不是像这样迭代源属性
function CopyMatchingKeyValues(Target, Source) { return Object.keys(Target).forEach(key => { if (Source[key] !== undefined) Target[key] = Source[key]; }); }
实际上,他正在测试密钥匹配,没关系。
3条答案
按热度按时间7eumitmz1#
在 typescript 中做这件事的最好方法是什么
和JavaScript一样。使用
Object.keys
即可下面的代码将内容从obj2移动到obj1:
对于任何条件,如必须尚未在obj1等中,您可以在
forEach
中进行检查🌹kg7wmglp2#
如果你不介意
obj1
中不存在任何obj2
的键,更清晰的方法是使用Object.assign(obj1, obj2)
:li9yvcax3#
我认为@basarat的意思是迭代目标属性,而不是像这样迭代源属性
实际上,他正在测试密钥匹配,没关系。