typescript 如何将匹配属性从一个对象复制到另一个对象

1cklez4t  于 2023-06-24  发布在  TypeScript
关注(0)|答案(3)|浏览(336)

我有这两个对象:

obj1 = {a: '', b: ''}
obj2 = {a: '1', b: '2', c: '3'}

我要将所有匹配属性从obj2复制到obj1。在Typescript中实现这一目标的最佳方法是什么?

7eumitmz

7eumitmz1#

在 typescript 中做这件事的最好方法是什么
和JavaScript一样。使用Object.keys即可
下面的代码将内容从obj2移动到obj1:

let obj1 = {a: '', b: ''}
let obj2 = {a: '1', b: '2', c: '3'}

Object.keys(obj2).forEach(key=>obj1[key]=obj2[key]);

对于任何条件,如必须尚未在obj1等中,您可以在forEach中进行检查🌹

kg7wmglp

kg7wmglp2#

如果你不介意obj1中不存在任何obj2的键,更清晰的方法是使用Object.assign(obj1, obj2)

li9yvcax

li9yvcax3#

我认为@basarat的意思是迭代目标属性,而不是像这样迭代源属性

function CopyMatchingKeyValues(Target, Source) {
    return Object.keys(Target).forEach(key => {
        if (Source[key] !== undefined)
            Target[key] = Source[key];
    });
}

实际上,他正在测试密钥匹配,没关系。

  • 为了提高性能,我们可能希望选择最短的键列表。

相关问题