【发布时间】:2018-01-26 02:15:56
【问题描述】:
我有两个属性相同但值不同的对象
示例:
export class obj1{
arr1: values[]
dic1: { [key: string]: Value; };
bool1: boolean
}
export class obj2{
arr1: values[]
dic1: { [key: string]: Value; };
bool1: boolean
}
如果对象的属性是数组或字典,我希望将 obj2 值添加到 obj1 的值中。哪里有 boolean\string\number 属性我希望 obj2 属性替换 obj1
有没有一种简洁的方法可以在几行内完成,或者我必须映射每个属性。
【问题讨论】:
-
如果它的数组试试这个。
var newobj = Object.assign(obj1, obj2); -
您可以使用 lodash
_.mergeWith并传递您的函数。看到这个:jsbin.com/xugujon/edit?html,js -
Deckerz 不幸的是,它替换了所有具有相同名称的属性,它不会添加到数组和字典中
-
你应该举一个真实的例子(这就是例子的用途)。您的示例包含语法错误。并告诉我们您期望的结果。我不确定您是否想要/需要递归函数。如果我看到一个例子,我会的。
标签: javascript arrays typescript dictionary concat