I have array with nested objects, want to add sum of value and make an object in javascript.
const arr = [
{
preliminary: {
contract_value: 1000,
planned_value: 500,
balance_value: 500,
},
substructure: {
contract_value: 1000,
planned_value: 500,
balance_value: 500,
},
superstructure: {
contract_value: 1000,
planned_value: 500,
balance_value: 500,
},
architectural: {
contract_value: 1000,
planned_value: 500,
balance_value: 500,
},
mande: {
contract_value: 1000,
planned_value: 500,
balance_value: 500,
},
externalwork: {
contract_value: 1000,
planned_value: 500,
balance_value: 500,
},
miscorcontingency: {
contract_value: 1000,
planned_value: 500,
balance_value: 500,
},
},
{
preliminary: {
contract_value: 100,
planned_value: 50,
balance_value: 50,
},
substructure: {
contract_value: 100,
planned_value: 50,
balance_value: 50,
},
superstructure: {
contract_value: 100,
planned_value: 50,
balance_value: 50,
},
architectural: {
contract_value: 100,
planned_value: 50,
balance_value: 50,
},
mande: {
contract_value: 100,
planned_value: 50,
balance_value: 50,
},
externalwork: {
contract_value: 100,
planned_value: 50,
balance_value: 50,
},
miscorcontingency: {
contract_value: 100,
planned_value: 50,
balance_value: 50,
},
},
];
I have done for one object, so want do multiple object
const result = arr.reduce(
(obj, { preliminary, ...rest }) => {
return (
Object.keys(preliminary).map(
(key) =>
(obj.preliminary[key] =
preliminary[key] + (Number(obj.preliminary[key]) || 0))
),
obj
);
},
{
preliminary: {},
substructure: {},
superstructure: {},
architectural: {},
mande: {},
externalwork: {},
miscorcontingency: {},
}
);
console.log(result)
Here I attach the fiddle link
I got out put for "preliminary" value. I need all of object mean needs to do dynamically. Thanks in advance.