Необходимо в объект записать свойства двух других объектов, но при этом одинаковые свойства не заменять, а складывать значения ключей. Пример:
let object1 = {
'ключ1': 100,
'ключ2': 100
};
let object2 = {
'ключ2': 10,
'ключ3': 10
};
/*
Желаемый результат:
object3 = {
'ключ1': 100,
'ключ2': 110,
'ключ3': 10
}
*/
Можно циклами и проверкой на наличие:
let object1 = {
'ключ1': 100,
'ключ2': 100
};
let object2 = {
'ключ2': 10,
'ключ3': 10
};
let object3 = {};
for(key in object1){
if(object2[key] == undefined){
object3[key] = object1[key];
}else{
object3[key] = parseFloat(object1[key]) + parseFloat(object2[key]);
};
};
for(key in object2){
if(object1[key] == undefined){
object3[key] = object2[key];
}else{
object3[key] = parseFloat(object1[key]) + parseFloat(object2[key]);
};
};
console.log(object3);
let object1 = {
'ключ1': 100,
'ключ2': 100
};
let object2 = {
'ключ2': 10,
'ключ3': 10
};
const addValueByKey = (...rest) => rest.reduce( ( result, current ) => {
for(let key in current){
let value = current[key];
if(result[key] === undefined){
result[key] = value;
}else{
result[key] += value;
}
}
return result;
}, {} );
console.log(addValueByKey(object1, object2));
Сборка персонального компьютера от Artline: умный выбор для современных пользователей