如何将对象属性添加到一起(编号)



嘿,我正在做一个JS项目,遇到了一个问题,我试图将两个对象添加/合并在一起。所以基本上,有一个基本对象:

{age: 0,
lvl: 123,
xp: 321}

我们有了这个,我有了另一个物体

{age: 12,
lvl: 21}

我想要的结果是

{age: 12,
lvl: 144,
xp: 321}

但只要增加个人财产,就可以很容易地实现这一点。然而,我想说的是,我不知道对象有什么属性,但它们仍然被添加。哦,财产类型肯定是一个数字。有什么想法吗?

编辑:好吧,我发现我有些地方写错了。我所说的不知道它有哪些属性,我的意思是我知道这个对象可能有第一个对象的所有属性之一,只是我不知道第二个对象有哪些属性。

循环遍历第二个对象的键,并将它们添加到第一个:

const first = {
age: 0,
lvl: 123,
xp: 321
};
const second = {
age: 12,
lvl: 21
};
for (const key in second) {
first[key] = (first[key] || 0) + second[key];
}
console.log(first);

在此处阅读有关for...in循环的更多信息。

编写一个函数,复制第一个对象并在中添加键

function addProperties(firstObj, secondObj) {
const newObj = Object.assign({}, firstObj);
for (let key of Object.keys(secondObj)) {
if (newObj.hasOwnProperty(key)) {
newObj[key] += secondObj[key];
} else {
newObj[key] = secondObj[key];
}
}
return newObj;
}
const first = {
age: 0,
lvl: 123,
xp: 321
};
const second = {
age: 12,
lvl: 21
};
const result = addProperties(first, second);
console.log(result);

最新更新