【发布时间】:2021-10-07 07:29:16
【问题描述】:
我有一个包含嵌套对象的数组,想要添加值的总和并在 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,
},
},
];
我已经为一个对象做了,所以想要做多个对象
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(结果)
这里附上小提琴link
我出于“初步”价值而出局。我需要所有的对象意味着需要动态地做。提前致谢。
【问题讨论】:
-
您的预期结果是什么?
标签: javascript arrays object ecmascript-6